![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
前の質問に回答が付かなかったので削除して再度質問させていただきます。
Geckoエンジンでwindow.closeが効かない問題は結構有名でこれまで
これまた以下にあるような有名な方法で対応していました。
http://tosaka.org/tips/javascript.html
ところが、現在の最新バージョンのGeckoエンジンではこれでも閉じる
ことができないようです。
確認した限りではFx 1.5.0.12(Gecko/20070508)では閉じることが
できますがSeaMonkey 1.1.11(Gecko/20080702)では閉じることができず
about:blankページになるだけです。
現在ではFxなどGeckoエンジン勢も無視できない状態ですのでこれを
何とか無理矢理閉じる方法はないものでしょうか。
(上記の方法も無理矢理でしたが...)
top.nameの名前を変えてみたり、self.closeにしてみたりと自分でも
一応根拠なく思いつく限りいろいろ試したもののできませんでした。
セキュリティなどのためとはいえ、あまりにも不便すぎます。
関連質問
http://oshiete1.goo.ne.jp/qa2765613.html
(こちらではできないという結論になっています)
なお、IE(Trident IV)及びOp(Presto)やSF(WebKit)では正常に閉じる
ことができています。
セッション管理の後始末も兼ねているため、極力閉じるボタンを押して
欲しいので閉じることができないと困ります。
(もちろんそれでも閉じるボタンを押さないで閉じる人もいるだろうから
一定時間経つと自動で後始末するようにはしています)
No.3ベストアンサー
- 回答日時:
>window.open で開いたウィンドウで window.close
openをしたwindowで?openされたwindowで?
前者なら勿論「window.close()」という記述ではおかしいのは判るよね
後者でならとりあえず開いたwindowをオブジェクトとして取得して、それを使ってcloseかけられないか試してみたらどうだろう
どうもありがとうございます。
どうやら、タブブラウザ拡張が原因だったようです。
タブブラウザ拡張をアンインストールしたら閉じることができるように
なりました。
どうやら、タブブラウザ拡張機能の中で廃止された機能が使用されて
いたことが直接の理由となって途中でエラーがでていたようです。
SM1.1.1及びFx3.0でも正常に閉じることを確認できました。
(この際なのでFxをバージョンアップしました)
タブブラウザ拡張はTab Mix Plusに置き換えました。
お手数かけてすみませんでした。
No.2
- 回答日時:
本来、自分で開いたんじゃないWindowを閉じる権限は持たせるべき
じゃないんだから、スクリプトに閉じさせたいWindowはスクリプト
に開かせるのが常道です。自分の子しか閉じさせないのもアリ。
セッション管理が目的なら、body要素のonUnLoad属性で後始末用の
スクリプトでも呼んでみてはどうでしょう。
この回答への補足
回答ありがとうございます。
> 本来、自分で開いたんじゃないWindowを閉じる権限は持たせるべき
> じゃないんだから、...(後略)
閉じようとしているのは自分で開いたウィンドウです。
一応、ANo.1さんの補足にも書いたようにアンカータグで
target="_blank" としていたのを
var wind = window.open('test.html', 'test');
として、開いたウィンドウ上で
window.close();
を実行してみましたが閉じられないようです。
(target="_blank" の時とエラー内容は違っています)
> セッション管理が目的なら、body要素のonUnLoad属性で後始末用の
> スクリプトでも呼んでみてはどうでしょう。
すみません。
onunloadはページの推移でも呼ばれるため、これは使用できません。
また、閉じるボタンが必要なのは送信完了したフォームのウィンドウを
閉じたいということでもあるので...。
この動作自体がとりあえず確認できた限りではGeckoのみで発生して
いるということも頭を悩ませている原因なんです。
他のエンジンでも同様の方向性なら、もう諦めるしかないのですが...。
No.1
- 回答日時:
>あまりにも不便すぎます
発想が逆だよ。
そもそも複数ウィンドウやフレームを前提に作るべきではないとしているのだから(以下略)
http://developer.mozilla.org/ja/DOM/window.close
---------------一部抜粋---------------
このメソッドが許可されるのは、window.open メソッドを用いたスクリプトによって開かれたウィンドウに対して呼び出されたときのみ
--------------------------------------
つまりwindow.openを介さずに開いた物は対象外。(aタグtarget等)
それに合致していて閉じれないなら仕様だね。
ショップサイトとかで別窓の殆どがwindow.openで作ってあるのはそういう理由じゃないかな。
この回答への補足
回答ありがとうございます。
そのGeckoエンジン独特の流儀がよく分からないのです。
そもそも、複数ウィンドウやフレーム自体を非推奨としていることも
分からないのです。
確かに本来のHTMLの概念からは当然の流れなのかもしれませんが、
実際に利用されている用途とは相反しています。
なお、試しに window.open で開いたウィンドウで window.close を
してみたのですが、これでも閉じることができませんでした。
エラーコンソールには以下のようにでています。
Warning: Event=click, use of preventCapture() is deprecated. Use W3C standard stopPropagation() instead.
Source File: chrome://navigator/content/navigator.xul
Line: 0
Warning: Event=click, use of preventBubble() is deprecated. Use W3C standard stopPropagation() instead.
Source File: chrome://navigator/content/navigator.xul
Line: 0
Error: browsers.item is not a function
Source File: chrome://navigator/content/navigator.js
Line: 477
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) PC利用中に勝手に起動する窓を消し去る方法を教えて下さい。 1 2023/05/08 16:48
- 車検・修理・メンテナンス 2009年l375sタントのスマートキー修理について。 ※キーボックス持ってると、近づいたら勝手にド 3 2023/06/18 09:43
- その他(悩み相談・人生相談) お客様は神さまとか言うけど閉店後に電気消えてる中ネットをくぐって入ってきて普通に使ってたけど割れたか 1 2022/09/13 00:24
- 車検・修理・メンテナンス 新ダイワのEGR2600なのですが、エンジンが掛かってすぐ2~3秒くらいで止まってしまいます。 2. 2 2022/06/06 18:15
- 英語 Since there is no change in external dimensions, t 1 2023/04/03 22:42
- 防災 【消防士さんに放水ポンプについての質問です】エンジンタイプの放水ポンプで放水を止める 3 2023/03/14 18:04
- 会社・職場 手動式サイドミラーについて 私の車のミラーはボタンを押したら自動で開け閉めができたりエンジン切ったら 10 2023/05/25 18:28
- その他(ブラウザ) Excel VBA seleniumのedge操作について 業務上、分からないことがございまして、先 1 2022/06/20 16:59
- 中古車 キーが車内にないのに閉めれない 2 2022/07/06 15:36
- 国産車 車のミラーがオートで閉まるように設定してあります。 車のエンジンを切って車を降りてドアのノブのボタン 9 2023/02/08 21:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[Java] Edgeでのアドレスバー非...
-
呼び出されたページを閉じ、呼...
-
opener.focus();が利かない
-
同じページをブラウザで複数開...
-
子画面を自動で閉じた後、親画...
-
サブウィンドウを常に最前面に...
-
デジタル時計の時刻合わせの方...
-
マイページはどこを開くの
-
ウインドウを毎回同じ位置、大...
-
エクセルのシート上に別のシー...
-
ポップアップウィンドウがブロ...
-
別フォームから戻ったときのイ...
-
Youtubeが勝手に右下に勝手に小...
-
Excelでワードアートや図を常に...
-
Javascript_submit()完了後に処...
-
スクリプトって、何ですか?ど...
-
VB2005 DataGridView上でクリッ...
-
小さな表示窓の呼び方は
-
VBA ポップアップが表示された...
-
一定時間おきにアラームやポッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Java] Edgeでのアドレスバー非...
-
同じページをブラウザで複数開...
-
画面を閉じる(×ボタンやタスク...
-
window.open("about:blank")
-
ブラウザ Chromeを使っていて、...
-
閉じた後のwindow.closed検知
-
親ウインドのASPをリロードさせ...
-
呼び出されたページを閉じ、呼...
-
ツールバーやステータスバーな...
-
opener.focus();が利かない
-
window.openで子画面を開いた後...
-
サブウィンドウを常に最前面に...
-
alertの最前面表示
-
onclickでのページ内移動
-
JavaScriptでタブを閉じたい
-
子画面を自動で閉じた後、親画...
-
IE7でのwindow.openerがnullになる
-
リロードさせないワザ
-
ラジオボタンクリックでサブウ...
-
window.open()のオプション(fe...
おすすめ情報