かきすて

正しいかどうかよくわからない知識をよくわからないままとりあえず公開してみようというコンセプトで運営しています。

firefoxでwindow.resizeToが効かない

最近バイトの関係でいろんなイケてるサイトのスクリーンショットを撮るという不思議な作業をしている。
しかし最近のイケてるWebデザインといえば大体レスポンシブデザイン。
画面の横幅によって見た目が変わってしまう。
そこで、一定の幅でのスクリーンショットを撮るべくこんな感じのブックマークレットを作った。

javascript:window.resizeTo(1024,768);

叩いてみる。
うんともすんともしない。

Since Firefox 7, it's no longer possible for a web site to change the default size of a window in a browser, according to the following rules:

  1. You can't resize a window or tab that wasn’t created by window.open.
  2. You can't resize a window or tab when it’s in a window with more than one tab.
window.resizeTo - Document Object Model (DOM) | MDN

つまりfirefox7以降では「window.open」で作ったウインドウ以外のウインドウサイズは変えられないし、二つ以上タブを開いているウインドウは何にせよ変えられませんよということか。
ちなみにwindow.resizeByの方のページにも同じことが書いてあった。

で、結局こうした。

javascript:window.open(location.href,"a","width=1024,height=768");void(0);

まあ横幅さえ指定できればあとは何でもよかったので。

ちなみに、調べている途中、じゃあwindow.openで開いたやつならできるのかと思ってやったけどできねえよって言ってる人もいた。
Javascript's `window.resizeTo` isn't working - Stack Overflow
できないのかもしれない。
試してないからよくわからないけど。