SSブログ

JavaScript で window.close するのはあきらめた! [JavaScript]

ようやく、ぶっくま!のブックマークレット(PC用)を公開できました。モバイル用は、これから作ります・・・。

ブックマークレットを作っていて、ハマってしまったので、メモっておきます。


最初、ブックマークレットは、ウインドウ(小窓)を開く仕様にするつもりだったのですが、動作チェックをしていたら、ウインドウを閉じることができないことに気づきました。

ユーザーが手動で閉じることはできますが、JavaScript(ブログラム) から close() しても閉じないということ。しかも、ブラウザの種類やバージョンによって挙動が違う!

なんでできないの?と思って、調べてみたら、

  JavaScript の close() を使った攻撃手法があり、
  その攻撃を回避するために、各ブラウザが独自で対応している

ということらしいです。

ブラウザの種類やバージョンによって挙動が違うのは、独自に対応しているためですね。
独自に対応しているということは、これからも仕様がコロコロ変わる可能性があるということ。
実際、いままでも(各ブラウザとも)何回か仕様が変わってますし。
裏技的な方法でウインドウを閉じるように作っても、ブラウザのバージョンアップで使えなくなるのはちょっと問題です。

企業などが作っている Webサービスでは、ブラウザを判定して、別々のプログラムを動かしていたりしますが、ブラウザのバージョンアップにあわせて動作をチェックして、プログラムを作り直す作業が発生します。
企業が業務としてやっているなら別ですが、個人がそんなことできません!


ということで、別ウインドウを開くのではなく、別タブを開く仕様に変更しました。
ちょっと使いにくいかもしれませんが、動作しなくなるよりはいいかなと。


ちょうど、各ブラウザのバージョンアップやアップデートが目白押しな時期なので、タイミング的にも悪かったですね。




nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。