Chonaso's Commentary

InternetやIT技術などについて知ったこと、試したこと、考えたことを書いていきます。

greasemonkeyで別ウィンドウを作って書き換える

社内のスケジューラがアレなんでgreasemonkeyでいじくりまくりなんですが、タイトルの通り「別ウィンドウを作って書き換える」っていうのをやりたくて、

素直に

function ababa(){
  var win = window.open("", "", "width=520, height=400");
  win.document.write("あばば");
}

setTimeout(ababa(), 3000);

ってやると、

document.writeの時点で

[Exception... "The operation is insecure." code: "18" nsresult: "0x80530012 (SecurityError)" location: ""]

と怒られて詰んでたら隣の席の人もチャレンジしてくれて、解決したコードがこれ。

setTimeout('(function(){ \
  var win = window.open("", "", "width=520, height=400");\
  win.document.write("あばば");\
})()', 3000);

なんかこれって、昔あったFlashをクリックしなくても自動的に発動するようにするワークアラウンドみたいだな、って思いました。

一応解決はしましたが、なぜこれだと大丈夫なのかはよくわかってません…。