Leb*_*156 10 javascript google-chrome-extension
我已经阅读了文档,但我仍然无法使用它.
这是我的清单:
{
"name":"app",
"version":"0.1",
"manifest_version":2,
"description":"app",
"background":{
"scripts":[
"scripts/modernizr.min.js",
"scripts/background.js"
],
"persistent": false
},
"content_scripts": [
{
"matches": ["https://*/*", "http://*/*"],
"js": ["scripts/content.js"],
"run_at": "document_end"
}
],
"permissions":[
"contextMenus",
"tabs",
"http://*/*",
"https://*/*"
],
"icons":{
"16":"images/icon_16.png",
"128":"images/icon_128.png"
}
}
Run Code Online (Sandbox Code Playgroud)
我在content.js中有一个名为"myFunc"的函数.在background.js中,我有一个函数,"myHandler",由contextMenus.onClicked监听器调用.我想从myHandler调用myFunc.我尝试使用tabs.executeScript和tabs.query,但我似乎无法获得要调用的函数.任何人都可以向我解释我应该让background.js调用content.js中的函数吗?
方 觉*_*方 觉 13
要从后台页面调用内容脚本中的函数,首先需要知道选项卡ID.contextMenus.onClickedevent有一个tab包含该id 的参数.然后使用消息传递来执行此操作.
例如,在您的后台页面中:
chrome.contextMenus.onClicked.addListener(function(info, tab) {
if (tab)
chrome.tabs.sendMessage(tab.id, {args: ...}, function(response) {
// ...
});
});
Run Code Online (Sandbox Code Playgroud)
在您的内容脚本中:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
sendResponse(myFunc(request.args));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11065 次 |
| 最近记录: |