今更ながら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を書く際には改行をエスケープするために全行末に「\」を付けています。
もっとよさそうな方法はありそうですが、とりあえずは上記の方法で逃げておきます……。