ユーザースクリプトを使用してページ内の変数を変更しようとしています。ソースコードに変数があることを知っています
var smilies = false;
理論的には、次のように変更できるはずです。
unsafeWindow.smilies = true;
しかし、それは機能しません。ハイジャックせずに変数をコンソールにアラートまたはログに記録しようとすると、未定義であることがわかります。
alert(unsafeWindow.smilies); // undefined !!!
編集:何かが変わる場合はChromeを使用しています...
http://code.google.com/chrome/extensions/content_scripts.htmlによると:
コンテンツスクリプトは、孤立した世界と呼ばれる特別な環境で実行されます。挿入されたページのDOMにはアクセスできますが、ページによって作成されたJavaScript変数や関数にはアクセスできません。各コンテンツスクリプトは、実行中のページで実行されている他のJavaScriptがないかのように見えます。
Chrome拡張機能についてですが、ユーザースクリプトでも同じ話だと思いますか?
ありがとう、Rob W.それで、それを必要とする人々のための実用的なコード:
var scriptText = "smilies = true;";
var rwscript = document.createElement("script");
rwscript.type = "text/javascript";
rwscript.textContent = scriptText;
document.documentElement.appendChild(rwscript);
rwscript.parentNode.removeChild(rwscript);