【IE7】タブが複数開いている場合のwindowオブジェクトの操作

IE7のJavaScriptに関するメモ。

マイクロソフト社公式の『開発者向けタブ ブラウズ機能』というドキュメントによると、IE7では、タブが複数開いているときに、windowオブジェクトの幾つかのメソッドで振る舞いが変わるそうだ。

一部を抜粋してコピペする。

たとえば、タブが 1 つだけ開かれているとき、またはユーザーがタブ ブラウズ機能を無効にしているときは、いくつかの window メソッドでブラウザ ウィンドウのサイズ、位置、および外観に影響を与えることができます。 しかし、複数のタブが開かれているときは、これらのメソッドは効果がありません。 このようなメソッドには、サイズ変更、移動など、ブラウザ ウインドウの外観を変更するメソッドがあります。・・・

他にも、非アクティブなタブ上で実行された場合に無視されるメソッドなどが幾つかあるようだが、非アクティブなタブでウィンドウをコントロールするような実装はほとんど見ないので、影響を実感する機会は滅多にないかも知れない。しかし、ウィンドウの位置やサイズを変更するような動作は、フルFlashのコンテンツなどでよく見かける。こういうサイトは、タブが複数開かれたウィンドウ上で実行されないようにするか、それでも問題が起きないようにするか、なんらかの配慮が必要だということだろう。

実際やってみた。

今回試しているのは、window.resizeTo() と window.moveTo()。確かにタブが2つ以上あるウィンドウでは動作が異なることが確認できた。タブがひとつの場合は動作するが、2つ以上タブを開いた状態では、無視されている。

ちなみに、上記のサンプルを他のブラウザでテストすると、Safari3 と Firefox3 はタブの数に関わらず動作した。Chrome1.0.154.36 は、タブの数に関わらず完全に無視。Opera9.6では、ウィンドウが最大化されているときは完全に無視、そうでなければ、タブの数に関わらず動作した。


プロフィール

コヤナギ トモヤ

まったりウェブ系コーダーしてます。PHP製静的CMS Pickles 2 を開発しています。

RSSフィード

  • このサイトは、 コヤナギ トモヤ の個人サイトです。
  • 個人的な主張や、活動の記録などを掲載しています。 所属する企業、団体、その他の意見や立場を代表するものではありません。
  • 掲載された内容は古くなっている可能性があります。 特に古い記事では、現在の筆者の考えと異なる主張をしていることがありますが、記録としてそのまま残しております。 予めご了承ください。
ページの先頭へ戻る