Javascript 当内容脚本需要时通知后台任务

Javascript 当内容脚本需要时通知后台任务,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我有一个主要任务(background.js)运行一些东西 我需要在我的应用程序的后台脚本上创建一个新的触发事件,这样他将创建一个新的超时一天(24小时)。但是,我不想检查我输入的每个页面,在我的背景下,我想做的是通过一个内容脚本页面向我的背景任务(同一个应用程序)发送某种“消息” 我需要的是:从我的内容脚本在我的背景上运行一个函数 可能吗?如何实现?是的,通过消息传递可以实现。您可以引用以下脚本作为参考 示范 当从内容脚本触发时,以下代码将在后台页面中执行一个函数 manifest.json

我有一个主要任务(background.js)运行一些东西

我需要在我的应用程序的后台脚本上创建一个新的触发事件,这样他将创建一个新的超时一天(24小时)。但是,我不想检查我输入的每个页面,在我的背景下,我想做的是通过一个内容脚本页面向我的背景任务(同一个应用程序)发送某种“消息”

我需要的是:从我的内容脚本在我的背景上运行一个函数


可能吗?如何实现?

是的,通过消息传递可以实现。您可以引用以下脚本作为参考

示范 当从内容脚本触发时,以下代码将在后台页面中执行一个函数

manifest.json 已注册具有扩展名的背景和内容脚本,并添加了必要的权限

{
    "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/*"
    ]
}
background.js 它包含一些普通函数和一个用于触发函数调用的侦听器

//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
    }
});
myscript.js 输出 调用触发器时,可以看到后台函数正在运行

参考文献
//Trigger background page through message passing
chrome.extension.sendMessage({
    message: "Hey i am from Google.co.in Page please run runme function" //Some message
});