window
の中に新しいオブジェクトを提供するChrome拡張機能を作りたいと思います。 Webページが拡張機能がロードされたブラウザで表示される場合、window.mything
をJavascript経由で利用可能にしたいと思います。 window.mything
オブジェクトには、拡張機能で定義するいくつかの関数があります。これらの関数は、拡張機能が有効になっているブラウザでページを表示すると、console.log
または任意のJavascriptファイルから呼び出すことができます。Chrome拡張機能からウィンドウオブジェクトを変更できますか?
私は成功しContent Scriptを使って、ページにJavaScriptファイルを注入することができました:
var s = document.createElement("script");
s.src = chrome.extension.getURL("mything.js");
document.getElementsByTagName("head")[0].appendChild(s);
mything.jsは次のようになります。
window.mything = {thing: true};
console.log(window);
するたびにページが読み込まれると、私は見ます私はそれがコンソールにあると期待しているので、全体window
オブジェクト。しかし、私はコンソールからwindow.mything
オブジェクトと対話できません。注入されたスクリプトがグローバルwindow
オブジェクトを実際に変更していない場合は、
グローバルwindow
オブジェクトをChrome拡張機能から変更するにはどうすればよいですか?
これは不可能です。あなたは正しいコンソールを見ていますか、スクリプトは本当に実行されていますか(ドキュメントを調べ、スクリプトタグを探したり、構文エラーがないかチェックしますか?スクリプトは確実にページのコンテキストで実行されるため、「mything」は存在していなければなりません。 –