- PR -

showModalDialogについて

投稿者投稿内容
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-09-28 16:11
引用:

かつのりさんの書き込み (2005-09-23 19:02) より:
>NAL-6295さん
確かに通常のwindow.openと同じ方法でのアクセスはできないです。

しかし、モーダルの場合はshowModalDialogメソッドの第2引数で、
ダイアログウィンドウへ値を渡す事ができます。
それを参照する為には、ダイアログ側で
window.dialogArgumentというプロパティを参照します。

呼び出し側で自分自身のwindowオブジェクトを渡せば、
呼び出された側で、そのwindowオブジェクトを参照する事ができ、
「親へアクセスする」ということが実現できます。

s3207wさんのソースが参考になるのではと思います。



NAL-6295です。

申し訳ありません。
認識を誤っていたようです。

確かに、そのとおりでした。

s3207w
会議室デビュー日: 2005/09/22
投稿数: 3
投稿日時: 2005-09-28 17:24
葉瀬崎さん、ありがとうございます。

問題の方ですが、解決いたしました。

じゃんぬさんのご指摘の通り
デバッグを進めておりましたが、

どうやらオブジェクトは存在するものの、
ロードがされていない状態で参照していたため
forms(0)の部分でnullが返ってきてエラーになったようです。

それからいろいろ試してみたのですが、
showModalDialogのreturnValueで親画面に値を返し、
親画面のForm_Loadイベントで
親画面検索ボタン名.Attributes["OnClick"] = 検索画面の呼び出し&検索画面からの戻り値を親画面にセット

とすることでうまくいきました。

みなさん、本当にありがとうございました。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-09-28 19:41
はまりやすいポイントだと思うのですが、
コード:
<head>
<script>
alert(document.forms[0].txt.value);
</script>
</head>
<body>
<form>
    <input name="txt">
</form>
</body>


コード:
<head>
<script>
function test(){
    alert(document.forms[0].txt.value);
}
</script>
</head>
<body onload="test()">
<form>
    <input name="txt">
</form>
</body>


と2つのソースがある場合、

上のソースではDOMが構築される前に実行される為、
フォームを参照しようとしてエラーになりますね。

下のソースはDOMが構築された後に実行される為、
安全に参照が可能です。

他にも、innerHTML等でHTMLを追加した場合、
その時点ではDOMが構築されませんので、
追加した内容を参照しても存在しません。

#以前、はまりにはまった経験が・・・

以上余談でした。

スキルアップ/キャリアアップ(JOB@IT)