我正在开发一个有 2 个脚本文件的 chrome 扩展。一个附加到manifest.json
as content_scripts
(页面脚本)。而且我还有一个脚本文件附加到我的附加popup.html
文件(附加脚本)。
当我在我的页面脚本中声明 avar
时,我尝试在我的附加脚本中调用它并得到undeclared varible
.
我可以在两个脚本之间进行通信吗?因为如果我尝试一次性完成所有操作,则它无法访问对面页面的元素。
我正在开发一个有 2 个脚本文件的 chrome 扩展。一个附加到manifest.json
as content_scripts
(页面脚本)。而且我还有一个脚本文件附加到我的附加popup.html
文件(附加脚本)。
当我在我的页面脚本中声明 avar
时,我尝试在我的附加脚本中调用它并得到undeclared varible
.
我可以在两个脚本之间进行通信吗?因为如果我尝试一次性完成所有操作,则它无法访问对面页面的元素。
您可以使用消息轻松地将值从后台传递到内容脚本。
下面是一个简单的例子:
清单.json
{
"name": "test",
"version": "0.0.1",
"manifest_version": 2,
"description": "Test ",
"background": {
"scripts": [
"background.js"
]
},
"browser_action": {
"default_title": "Test "
},
"permissions": [
"*://*/*",
"tabs"
], "content_scripts" : [{
"matches" : ["*://*/*"],
"js" : ["content.js"]
}]
}
背景.js
chrome.browserAction.onClicked.addListener(function(){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {data: "some value"});
});
});
内容.js
chrome.extension.onMessage.addListener(handleMessage);
function handleMessage(request) {
console.log(request.data);
}