- ベストアンサー
windowのクローズについて
- javascriptを利用して、ボタンを押すと新しいウィンドウを作成し、別のボタンを押すとウィンドウを閉じる処理を実装していますが、エラーが発生しています。
- ウィンドウを閉じる処理で「ランタイムエラー w1が宣言されていません」というエラーが表示されます。
- エラーが発生しないようにするには、ウィンドウが開かれているかどうかをチェックしてから閉じる処理を行う必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> が、b1を実行せずにb2を実行した場合にエラーとなります。 失礼しました。null はオブジェクトでした。というわけで、 if (w1 != null && !w1.closed)w1.close();} としてください。
その他の回答 (1)
- a-kuma
- ベストアンサー率50% (1122/2211)
何処か最初の方で var w1 = null; と変数宣言と初期化をしておく。ウィンドウをクローズするときの判断条件を if (typeof(w1) != "null" && !w1.closed) { w1.close(); } と、初期化しただけの状態かどうかのチェックを付け加えておく。 # 動作確認までしてません m(_ _)m
補足
<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を実行した場合にエラーとなります。 *メーラによっては変に表示される場合がありますことお詫びします。
お礼
たびたびありがとうございます。 できました! 今後ともよろしくお願いいたします。