GoogleChrome用の小さなユーザースクリプトを作成しました。関数を呼び出すまでは問題なく動作します。initTimer()スクリプトにはそのような関数はありませんが、ユーザースクリプトが実行されているページのスクリプトにはありますが、とにかくエラーが発生しますinitTimer() is not defined。書いてみましたwindow.initTimer()が、と書いてありますObject [object DOMWindow] has no method 'initTimer'。では、どうすればそれを機能させることができますか?
前もって感謝します
1 に答える
2
ユーザースクリプトは通常、ブラウザー環境の残りの部分からサンドボックス化されるため、セキュリティ上の理由から、ユーザースクリプトはページ自体で実行されているスクリプトと対話できません。また、ページで実行されているスクリプトもユーザースクリプトと対話できません。
script実行するコードを含む要素をページ自体に作成することにより、このためのスクリプトインジェクションを実行する必要があります。
var s = document.createElement('script');
s.innerHTML = 'initTimer();';
document.body.appendChild(s);
これに関する問題は、スクリプトを壊す場合と壊さない場合がありますが、挿入されたコードはサンドボックス内のコードと直接通信する方法がないため、すべてのコードを挿入するか、別のコードを使用する必要があります。必要に応じて通信する方法。
于 2011-04-03T15:22:06.437 に答える