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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
誕生日にもらった意外なもの
みなさんがもらった誕生日プレゼントで面白いものがあったらぜひ教えてください!
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
HTAのウィンドウを閉じるには・・。
ホームページ作成・プログラミング
-
HTAで、こんなボタンが作りたい。
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTAで,親ウインドウを閉じ...
-
エディタ機能のTEXTAREAを作りたい
-
IE8開発者ツールでソースの修正
-
禁止文字チェック
-
初心者です。gulpでコンパイル...
-
アンカーにマウスオーバーして...
-
「終了していない文字列型の定...
-
エクセルVBA/ Formatで文字列が...
-
【JavaScript】ソースのコメン...
-
Excel VBA カタカナ セル判定...
-
テキストボックスに記入したも...
-
JSPの処理の途中で、JavaScript...
-
VBScript から JavaScript を呼...
-
テキストファイルの更新日時を取得
-
evtとは
-
jQueryやMootoolsなどのライブ...
-
javascript,CSSでWebpageを作成...
-
JavaScriptで、実行するたび値...
-
Java ScriptのHPがみたい
-
JSでファイル数取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascript:void(0)とは何でし...
-
confirm()をはい/いいえ に切...
-
window.openがIEでエラーにされる
-
IE8開発者ツールでソースの修正
-
Javascriptエラーの原因が分か...
-
JavaScriptでVBのOption Explic...
-
ホームページビルダーでスクリ...
-
PDFフォームで条件つき金額を表...
-
このページのスクリプトでエラ...
-
javascriptのis null or not an...
-
関数を最終行までコピー
-
javascriptの打ちミスしてる所...
-
マウスムーブでのマウスカーソ...
-
Google mapが表示されない
-
jqueryでページを作りたいと思...
-
javascript + php でエラー
-
JavaScript IE7 対応
-
ロールオーバーを外部にすると...
-
特定の文字でエラー
-
Javascript でログインできない...
おすすめ情報