Greasemonkey むつかしい
ぐりもんは難しいよ!
例えば適当に「input type="button" value="hoge" onClick="hoge();" /」とか埋め込んでやるとします。
ここで呼ばれる hoge をどのように定義してやるかが分からない。
常識的に定義してやったのではダメ。
function hoge(){ ...; }
スクリプトが走り終わった後に廃棄されてしまうから。
この問題に対する解決策は、windowオブジェクトに突っ込んでおくのが調べた限り一般的。
window.hoge = function(){ ...; }
イベントハンドラとかはこんな感じで定義されてるみたいです。
が、これでも今回の例のようなのでは not defined。
腹がたったのでそのまま script 埋め込んでみました。
evalXPath(document, "/html/head")[0].innerHTML += '<script lang="Javascript">function hoge(elm){ alert(); }</script>';
evalXPath は XPath でDOM引張ってくるものです。getElementsByTagNameとか長いし使いにくいよ!
でこれでもダメでした。
疲れたのでここでやめました。
javascriptもDOMもgreasemonkeyも初心者なので何かつまらないミスをしてるかも知れません。何か分かる人はコメント下さい…
久しぶりの更新がこれか!