新しいページが読み込まれるたびにChrome拡張機能でinit()
機能を実行しようとしていますが、これを行う方法を理解するのに問題があります。私が理解から、私はbackground.htmlで次の手順を実行する必要があります。ページが スクリプトを実行するために使用chrome.tabs.executeScript
Chrome拡張コードとコンテンツスクリプトと注入スクリプト
- 使用
chrome.tabs.onUpdated.addListener()
をチェックします。
このコード私が持っている:のinit()関数は、他のJSファイルにある私の他の機能にアクセスする必要があります場合、私は疑問に思っても
//background.html
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
chrome.tabs.executeScript(null, {code:"init();"});
});
//script.js
function init() {
alert("It works!");
}
?
はクロム 'についてのヒントをありがとう.tabs.onUpdated'が2回発射されました。ですから私の疑問は私が 'init()'をどのように注入するのかということです。 JavaScriptをすべて注入する必要がありますか? 'init()'は通常、ユーザがブラウザアクションアイコンをクリックすると呼び出され、 'init()'は他の関数をトリガします。 – Jon
@ user1277607ページのグローバル変数のいずれかにアクセスする必要がある場合は、スクリプトを挿入します。 'function init'がページと拡張コードの両方にアクセスしなければならないときは、コンテンツスクリプトを使います。 ** [リンクされた回答](http://stackoverflow.com/a/9517879/938089?building-a-chrome-extension-inject-code-in-a-page-using-a-content-script)を参照してください* *スクリプトを挿入する方法を見るには、** [この回答](http://stackoverflow.com/a/9636008/938089?chrome-extension-retrieving-gmails-original-message)**を実装するためのガイドラインページの変数にアクセスしなければならないコンテンツスクリプト。 –
ありがとうございます。それは美しく働いた:) – Jon