- - PR -
子画面から親画面のラベルに値を代入する方法
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-26 13:24
こんにちは。
えと私の環境はVS2003でIE6ですが window.opener.document.Label1.innerText='あいうえお'; はNGで window.opener.Label1.innerText='あいうえお'; は正しく動きましたよ(^0^;) | ||||||||
|
投稿日時: 2007-01-26 13:41
しょくぱんさんのおっしゃる様に"document"の部分を抜いたら
子画面の値が親画面のラベルにも編集されました。 みなさん、本当にありがとうございました。 またわからないことがありましたらよろしくお願いいたします。 (自分でも精進します。) | ||||||||
|
投稿日時: 2007-01-26 14:31
解決しているようですが、一言だけ言いたいことがあります。
ここは予想通りでしたが、
なぜこういう推測になるのでしょうか... (私の誘導失敗) innerText は関係ないです。 > window.opener.document.form1.lbla は、Null またはオブジェクトではありません。 と言われています。 lbla が undefined または null でないかを確認するのが先です。 # SetFocus について というスレッドを思い出しました。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-01-26 14:56
じゃんぬねっとさん、ご指摘ありがとうございます。
# SetFocus について、を読ませて頂きました。 私の書き込みについてですが、確かにエラー内容と 私の推測は全く検討違いでした。 また、私の勘違いだったら申し訳ありませんが、じゃんぬねっとさんが すぐに答えを言わずに、自分で考えさせて答えに導こうとされていることも 感じました。 エラー内容との結びつけだけではなく、論理的に考えるようにしたいと思います。 ありがとうございました。 | ||||||||
|
投稿日時: 2007-01-26 15:26
私の勝手な意見を書いて申し訳ないのですが、
でも勉強になったのであえて書きます。 じゃんぬさんはスクリプトの記述ミスをご存知だったんですね・・・。 自ら気づかせてあげようとわざと教えてあげなかったんですね・・・。 私は人に教えるのが下手というかあまり指導した経験がないので、 目からウロコ落ちました。本当に素晴らしい指導者ですね。 | ||||||||
|
投稿日時: 2007-01-26 16:17
厳密にいえば、form1がnullでないかですね。 <script> var a = "a"; alert(a); alert(a.b); alert(a.b.c); </script> | ||||||||
|
投稿日時: 2007-01-26 22:04
なんでこんな書き方するかなぁ?このへん<wankuma.com>の説明でわかるかな?文字列は、不変です。上記のコードでは、 "window.openner.document." "txta" "window.opener.document.txta" ".innerText" "window.opener.document.txta.innerText" ... と、メモリが消費されます。(最適化されていると思うけど。)
txta は、サーバでの ID なので、クライアント上での ID を知るために、ClientID プロパティを使います。しかし、子画面のサーバコードでは親画面のコントロールはわかりませんから、子画面を呼び出すときに、何らかの方法で通知しておきます。 (他の画面の ID をハードコーディングするべきではないと思います。) _________________ |