今更ながらGreaseMonkey

yukiinu2ndです。今更ながらGreaseMonkeyを触ってみました。
現在社内で動いているシステムの一つがUI的にどうにも使いにくく、ふとGreaseMonkeyの存在を思い出し、「これで何とかできないかな」と思ったのがきっかけです。
空いた時間に少しずつ触っていますが、結構面白いですね。(自分でシステムをカスタマイズしている、という感覚のせいかもしれません)


ただ、functionを定義し、そのfunctionをOnclickで呼び出すボタンを差し込む、としたのですがfunctionがないと言われて困りました。
GreaseMonkeyスクリプトと対象ページとの間でスコープが違うからだとは思うのですが、少しばかり強引に解決しました。

var scrtag = document.createElement("script");
scrtag.type = "text/javascript";
scrtag.text = "window.HogeHoge = function(){\
	alert("hogehoge!");\
}";

document.body.appendChild(scrtag);

見ての通り、Script要素を作成し、textへJavaScriptをセットしてbodyの最後に差し込む、これだけです。
あとはこのfunctionを呼び出すボタンをページ上に追加すればOKです。
text内でJavaScriptを書く際には改行をエスケープするために全行末に「\」を付けています。
もっとよさそうな方法はありそうですが、とりあえずは上記の方法で逃げておきます……。