
HTAを使っています。
*.htaのファイルにjavascriptを下記のとおり書いています。
目的は,親ウインドウで「閉じる」というボタンを押すことで
親ウインドウを子ウインドウを閉じるという動作をさせることです。
概ね上手く動きますが,子ウインドウが既に閉じられている状況で実行すると,「リモートサーバマシンが存在しないか,利用できません。」とエラーになります。
WINDOWS2000では問題無く動きますが,XPだとエラーが表示されます。
どうすれば,子ウインドウの状況によらず正常に動作するでしょうか?
##########################################################
<input type="button" value="終了" onclick="closeWindow()" class="tukuru">
var subWin=""; //subWinをグローバル変数として宣言
function closeWindow(){
item1.style.display="";
setTimeout("end()",2000);
}
function end(){
if ( subWin.closed == false ) {;
if(subWin.name+''=='OpenWindow'){;
subWin.close();
};
};
window.close();
}
No.2ベストアンサー
- 回答日時:
#1さんがおっしゃるように
>これは何のオブジェクトを使っていますか?
がわからないと見当違いの回答になる可能性があります。
試しやすい方向で勝手に解釈しました。
subWin = window.open()
で子ウィンドウを開いています。
環境はxp,IE6です。
呼び出したウィンドウが存在しなくなっているので
subWinのプロパティを参照するとエラーになるの仕方がないと思います。
以下、エラーの有無によって処理を分けています。
function end(){
try{
var chkWin = subWin.closed;
subWin.close();
window.close();
}catch(e){
//エラー発生時
window.close();
}
}
おぉ,,,上手く動きました,,,
エラー時というのを利用できるんですね。
困ったときにはこのような手法を使ってみることにします。
ありがとうございました。
No.1
- 回答日時:
不思議な書き方をしている所がありますね。
if ( subWin.closed == false ) {;
if(subWin.name+''=='OpenWindow'){;
subWin.close();
};
これでうまく動いています?
>subWin.name+''
も意味有ります? (長さ0の文字列を加える????)
>親ウインドウを子ウインドウ
これは何のオブジェクトを使っていますか?
http://msdn.microsoft.com/en-us/library/ms536392 …
のような物もあるので参考までに
この回答への補足
下記の通り、
alert(subWin.closed)
を追記して走らせたところ、概ねアラートが出ました。
しかし、子ウインドウが既に閉じられている状況で実行するとアラートが出ずにエラーになりました。
何かのヒントになるでしょうか。
function end(){
alert(subWin.closed);
if(subWin.closed == false){;
subWin.close();
};
window.close();
}
お答えありがとうございます。
○subWin.name+'' は、空白文字列を加えることで
それが数字ではなく文字列であると限定しているつもりです。
○window.open('URL','OpenWindow')
という感じで子ウインドウを開いています。
○よく考えたら、開く子ウインドウは限定されているので
下記のような簡素な書き方でも良いです。
しかし、症状は解消しません。
function end(){
if(subWin.closed == false){;
subWin.close();
};
window.close();
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 ファイルエクスプローラーでフォルダを閉じる操作について 2 2022/10/15 11:06
- Chrome(クローム) 最近Win10にてブラウザが左にスッと隠れていく現象に悩まされてます 3 2023/07/22 23:11
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- その他(プログラミング・Web制作) VSCodeの自動保存の2か所を無効にしているのに自動で保存されてしまう 1 2022/10/19 11:31
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
confirm()をはい/いいえ に切...
-
javascriptのis null or not an...
-
過去の回答にあったJavaScript
-
ジャバスクリプトのエラーを直...
-
入力文字を瞬時に変える
-
JSPの処理の途中で、JavaScript...
-
イベントの発生
-
一定時間ごとの実行
-
特定のブラウザで動作しません
-
表示ページによって、aタグ内の...
-
〔Excel:VBA〕マクロの実行が異...
-
ブラウザごとにHPに表示する...
-
メニューを外部から呼び出したい
-
if(1){...}とはどういうことで...
-
ナビゲーションバーのポップア...
-
「終了していない文字列型の定...
-
プルダウンメニューの作成。
-
javascriptでのファイル管理方...
-
外部ファイルからの値の取得
-
セキュリティの質問です。 ①任...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascript + php でエラー
-
オブジェクトでサポートされて...
-
getElementByIdで謎のエラーが...
-
confirm()をはい/いいえ に切...
-
NetscapeCommunicator4.7でJava...
-
javascriptとHTML
-
ホームページビルダーでスクリ...
-
エラーが出ている箇所を調べるたい
-
PDFフォームで条件つき金額を表...
-
同じ記述でもサブウインドウが...
-
IEで見ると「構文エラー」にな...
-
Syntax errorって?
-
JavaScriptでVBのOption Explic...
-
javascript:void(0)とは何でし...
-
vba ie操作 ボタンを押...
-
初歩的な質問かもしれませんが...
-
HtmlからExcelを操作したい
-
HTAで,親ウインドウを閉じ...
-
Safariではロールオーバーが正...
-
IE9でJavaScriptが動きません。
おすすめ情報