• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:window.onloadの実行と抑止の分岐方法)

ウィンドウ間のデータ共有とwindow.onloadの抑止方法について

このQ&Aのポイント
  • 親ウィンドウと子ウィンドウの間でデータを共有する方法として、親ウィンドウから子ウィンドウに値を渡すことができます。ただし、子ウィンドウから送信ボタンをクリックすると、子ウィンドウの値が追加される問題が発生します。
  • この問題を解決するために、子ウィンドウでのsubmit時にwindow.onloadを抑止する方法を探しています。具体的な解決方法が分かりませんので、アドバイスをいただけると助かります。
  • また、送信ボタンクリック時に子ウィンドウのselectに「いいい」と表示される方法も求めています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

なんだかよくわかりませんが、index.phpが出力するHTMLにwindow.onloadの処理を書かなければ良いんじゃないでしょうか。

iroha_168
質問者

お礼

ご回答ありがとうございます。 ご指摘のwindow.onloadを書かずに本件を実現する事は可能なのでしょうか? 処理の流れとしては下記となります。 1. 親ウィンドウ(index.html) ↓ 任意の文言を入力し、「子ウィンドウを開く」で子ウィンドウ(sub.html)に値を渡します。 実現方法としては、子ウィンドウ(sub.html)でwindow.onloadを記述し、 window.openerで、親ウィンドウから子ウィンドウに値を渡しています。 ↓ 2. 子ウィンドウ(sub.html) ↓ 親ウィンドウから渡された文言を修正し、送信ボタンを押します。 この際、修正した文言を保持する為、index.php内で子ウィンドウのテキスト欄に値を再セットした上で、子ウィンドウを再読込しています。 ↓ 3. index.php ↓ ここまでは予定通りの動作となるのですが、この後、index.phpによる子ウィンドウ(sub.html)の再読込時にwindow.onloadが走ってしまう為、この時点では欲しくない親ウィンドウの文字が追加されてしまいます。 ↓ 4. 子ウィンドウ(sub.html) なお、上記の中で、index.phpで子ウィンドウ(sub.html)を再読み込みしているのは、子ウィンドウ内の他のところで変えたい値がある為です。 その為、例えば子ウィンドウ(sub.html)のwindow.openerは、親ウィンドウ(index.html)から開かれた場合のみ動作し、index.phpで再読込した際は動作しないように分岐させる事ができれば、3と4の間の現象が発生せず、意図した動作になるのではと思ったのですが、どのように実現すればよいか分からなかった為、ご質問させていただきました。 以上、よろしくお願いします。

iroha_168
質問者

補足

この回答へのお礼の3のindex.phpよりsub.htmlを再読み込みする際は特定の値を渡し、sub.htmlのwindow.onloadの先頭で特定の値がセットされていない場合のみwindow.openerが動作しないようにする事で回避する事ができました。 以上、よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A