ページ機能を置き換える Greasemonkey スクリプトを作成しました。
(function() {
var oldFunc = func;
func = function() {
oldFunc();
// other stuff
};
)();
私は常にこのスクリプトが Gresemonkey と Chrome の両方で動作することを意図しており、Chrome は をサポートしていないことを読んでいたunsafeWindow
ため、関数を文字列に変換し、次を使用してスクリプトをページに挿入していますsetTimeout
。
setTimeout("(function(){var old=func;func=function(){old();/*other stuff*/}}())", 0);
これは Greasemonkey では完全に機能しますが、Chrome ではまったく何も得られません。明らかに起動していませんが、ログにも何も表示されません。他の多くの注入スタイルを試しましたが、何も機能しません。(テストのためalert()
に、関数の先頭に an も追加しました。)
setTimeout(..., 0)
- なし- ページに挿入せずにスコープ内で関数を実行する - アラートは表示されないが、コンソールで「関数が定義されていません」
document.href = "javascript:..."
- なしdocument.body.addEventListener("load", ...)
- なし
これらはすべて付いてい@run-at document-end
ます。
残念ながら、これは私の最初の Chrome ユーザースクリプトであり、1 時間ほどグーグルで検索して SO をいじった後でも、デバッグ方法について途方に暮れています。何か助けはありますか?
現在 Greasemonkey で動作している実際のスクリプト: http://pastebin.com/HtLVjYHg