Chrome 扩展共享脚本变量
Chrome Extrensions Share Script variables
我正在开发一个有 2 个脚本文件的 chrome 扩展。一个附加到 manifest.json
作为 content_scripts
(页面脚本)。我还有一个脚本文件附加到我的附加组件 popup.html
文件(附加脚本)。
当我在我的页面脚本中声明一个 var
然后我尝试在我的附加脚本中调用它并且我得到 undeclared varible
.
我可以在两个脚本之间进行通信吗?
因为如果我尝试一次完成所有操作,那么它就无法访问对面页面的元素。
您可以使用 messaging 轻松地将值从后台传递到内容脚本。
下面是一个简单的例子:
manifest.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"]
}]
}
background.js
chrome.browserAction.onClicked.addListener(function(){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {data: "some value"});
});
});
content.js
chrome.extension.onMessage.addListener(handleMessage);
function handleMessage(request) {
console.log(request.data);
}
我正在开发一个有 2 个脚本文件的 chrome 扩展。一个附加到 manifest.json
作为 content_scripts
(页面脚本)。我还有一个脚本文件附加到我的附加组件 popup.html
文件(附加脚本)。
当我在我的页面脚本中声明一个 var
然后我尝试在我的附加脚本中调用它并且我得到 undeclared varible
.
我可以在两个脚本之间进行通信吗? 因为如果我尝试一次完成所有操作,那么它就无法访问对面页面的元素。
您可以使用 messaging 轻松地将值从后台传递到内容脚本。
下面是一个简单的例子:
manifest.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"]
}]
}
background.js
chrome.browserAction.onClicked.addListener(function(){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {data: "some value"});
});
});
content.js
chrome.extension.onMessage.addListener(handleMessage);
function handleMessage(request) {
console.log(request.data);
}