バックグラウンド ページの実行環境とコンテンツ スクリプトの実行環境は 2 つの異なるバリアントであるため、何らかの通信メカニズムを使用する必要があります。
ユース ケースを実現するためのサンプル スクリプト
マニフェスト.json
クロム拡張要素のすべての部分をマニフェスト ファイルに登録しました
{
"name":"Content to Background Script",
"description":"This Extension invokes background Script function whenever there is a scroll event",
"version":"1",
"manifest_version":2,
"background":{
"scripts":["background.js"]
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["myscript.js"]
}
],
"permissions":["<all_urls>"]
}
background.js
登録されたイベント リスナーと関数はこちら
//Some trivial Function
function _someFunction() {
console.log("I am invoked ...");
}
//Handler when message is sent from Content Scripts
chrome.extension.onMessage.addListener(function (message, caller, handler) {
if (message["callTo"] == "_someFunction") _someFunction();
});
myscript.js
これは簡単なサンプル コンテンツ スクリプトです。
//Look for scroll event
document.addEventListener("scroll", function () {
console.log("Page is Scrolled hence requesting background page to execute my function");
//Request Background page for execution of a function
chrome.extension.sendMessage({
"callTo": "_someFunction"
});
});
さらに情報が必要な場合はお知らせください。