unDonutからSleipnirに乗り換えるために作ったuser.js

世間ではWindows版のSafariがでて話題になったりしてますが、僕は最近メインのWeb参照用ブラウザをunDonutからSleipnirに乗り換えました。
乗り換えの理由は、unDonutで使っていた機能が全て標準でまかなえることと、SeaHorseがあること。
でも、一個だけどうしても気になるところがあって、それは「全てのタブを閉じることができない」こと。すべてのタブを閉じても about:blank が開いている状態になってしまう。FirefoxIE7も同じだけど、unDonutに慣れすぎたせいかすごく気になる。about:blankが白すぎるから。

そこで、以下のuser.jsを作ってみた。

// ==UserScript==
// @name          gray about blank
// @namespace     http://d.hatena.ne.jp/sawat/
// @description   gray about blank
// @author        sawat
// @include       about:blank
// ==/UserScript==
var div = document.createElement("div");
with(div.style) {
 position: "absolute";
 left = top = margin = padding = "0px";
 width = height = "100%";
 background="#7f7f7f";
 borderStyle = "inset";
 borderWidth = "2px";
 borderTop = "1px solid #404040";
}
window.document.body.style.margin = "0px";
window.document.body.style.overflow = "auto";
window.document.body.appendChild(div);

機能はabout:blankをグレーにして「何も開いていない」風を演出するだけ。でも、自分としてはすごく満足。これで心置きなく乗り換えられる。
なお、FirefoxGreasemonkeyでは上記スクリプトは機能しません。あしからず。



before


after

ちなみに、SleipnirSeaHorseはuser.jsの開発環境という視点でみると最悪。変更をいちいち再読み込みさせるのが面倒だし、さらにJavaScriptのエラーがどこにも表示されないのは致命的だし。なので、JavaScriptいじり用ブラウザは依然断トツでFirefoxです。Firebugとか便利すぎだし。

どうしてもSleipnir用にJavaScriptをいじらなきゃいけないときは、以下のようなonerrorハンドラを設定すると幾分マシになります。

window.onerror = function(message,file,num) {
 alert(file+" : " + num + "\n" + message);
}