gpt4 book ai didi

javascript - 将变量从 "browser_action"发送到 "content_scripts"

转载 作者:行者123 更新时间:2023-12-02 15:12:27 25 4
gpt4 key购买 nike

我对制作 Chrome 扩展程序很陌生,我会尝试一些东西:

我将把 JS 变量从“browser_action”发送到“content_scripts”

<小时/>
"browser_action": {
"default_popup": "src/browser_action/index.html"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["src/inject/inject.js"]
}
]
<小时/>

示例:如果...

src/browser_action/main.js :(browser_action)

var MyVar = "Hello world";

如何将 MyVar 发送到 src/inject/inject.js ?就像..

// What function I should do before to alert()?
if (typeof MyVar !== 'undefined') {
alert(MyVar);
}

最佳答案

如果你想从后台发送消息(或数据)到内容脚本,你可以使用 chrome.tabs.sendMessage() 。但您需要指定将其发送到哪个选项卡(使用 tabId)。您应该阅读message passing in extensions .

示例:

向所选选项卡中的内容脚本发送消息

ma​​in.js

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});

在接收端,需要设置chrome.runtime.onMessage处理消息的事件监听器

inject.js:

chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});

关于javascript - 将变量从 "browser_action"发送到 "content_scripts",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34717124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com