• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:windowのクローズについて)

windowのクローズについて

このQ&Aのポイント
  • javascriptを利用して、ボタンを押すと新しいウィンドウを作成し、別のボタンを押すとウィンドウを閉じる処理を実装していますが、エラーが発生しています。
  • ウィンドウを閉じる処理で「ランタイムエラー w1が宣言されていません」というエラーが表示されます。
  • エラーが発生しないようにするには、ウィンドウが開かれているかどうかをチェックしてから閉じる処理を行う必要があります。

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> が、b1を実行せずにb2を実行した場合にエラーとなります。 失礼しました。null はオブジェクトでした。というわけで、 if (w1 != null && !w1.closed)w1.close();} としてください。

noname#1802
質問者

お礼

たびたびありがとうございます。 できました! 今後ともよろしくお願いいたします。

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

何処か最初の方で var w1 = null; と変数宣言と初期化をしておく。ウィンドウをクローズするときの判断条件を if (typeof(w1) != "null" && !w1.closed) {  w1.close(); } と、初期化しただけの状態かどうかのチェックを付け加えておく。 # 動作確認までしてません m(_ _)m

noname#1802
質問者

補足

<html><head><script Language="JavaScript"> <!-- var w1=null; function send(re){ if(re>=1){ w1 = window.open("about:blank","w1"); document.forms[0].target="w1"; }else{ document.forms[0].target="_top"; if (typeof(w1) != "null" && !w1.closed)w1.close();} return true;} // --></script> <body><form> <input type="submit" value="b1" onclick="send(1)"> <input type="submit" value="b2" onclick="send(0)"> </form></body></html> 下記のように変更してみました。 が、b1を実行せずにb2を実行した場合にエラーとなります。 *メーラによっては変に表示される場合がありますことお詫びします。

関連するQ&A

専門家に質問してみよう