我有一个运行一些东西的主要任务(background.js)。
我需要在我的应用程序的后台脚本上创建一个新的触发事件,以便他将创建一个新的一天(24 小时)的超时。但是,我不想检查我在后台输入的每个页面,我想做的是通过一个 content_script 页面向我的后台任务(同一个应用程序)发送某种“消息”。
我需要什么:从我的 content_script 在我的背景上运行一个函数。
是否可以?如何?
我有一个运行一些东西的主要任务(background.js)。
我需要在我的应用程序的后台脚本上创建一个新的触发事件,以便他将创建一个新的一天(24 小时)的超时。但是,我不想检查我在后台输入的每个页面,我想做的是通过一个 content_script 页面向我的后台任务(同一个应用程序)发送某种“消息”。
我需要什么:从我的 content_script 在我的背景上运行一个函数。
是否可以?如何?
是的,可以通过消息传递。您可以参考以下脚本作为参考
当从内容脚本触发时,以下代码将在后台页面中执行一个函数。
已注册的背景和内容脚本,带有扩展名并添加了必要的权限
{
"name": "Run Background page function from content script",
"description": "",
"version": "1",
"manifest_version": 2,
"background": {
"scripts": [
"background.js"
]
},
"content_scripts": [
{
"matches": [
"https://www.google.co.in/*"
],
"js": [
"myscript.js"
]
}
],
"permissions": [
"https://www.google.co.in/*"
]
}
它包含一些微不足道的函数和一个用于触发函数调用的侦听器
//Some Trivial Function
function runme() {
console.log("I am executed ... ");
}
//Listener fired when message is recieved
chrome.extension.onMessage.addListener(function (content) {
if (content.message == "Hey i am from Google.co.in Page please run runme function") { // Check for correct message
runme(); // Invoke function
}
});
//Trigger background page through message passing
chrome.extension.sendMessage({
message: "Hey i am from Google.co.in Page please run runme function" //Some message
});
您可以看到调用触发器时正在运行的后台函数。