gpt4 book ai didi

google-chrome-extension - 如何从background.js访问变量以在chrome扩展中弹出

转载 作者:行者123 更新时间:2023-12-03 03:22:13 25 4
gpt4 key购买 nike

在chrome扩展中,我正在通过background.js创建一个新的html页面作为弹出窗口。检查下面的background.js代码,

 chrome.contextMenus.create({
title: "share this",
contexts: ["selection"],
onclick: myFunction

});

var test0 = "Testing content Outside the myfunction";

function myFunction(data) {
var theSelection = data.selectionText;
console.log(theSelection);

chrome.tabs.query({'active': true, "lastFocusedWindow":true}, function(tabs) {
var sourceURL = tabs[0].url;

chrome.windows.create({
url: chrome.runtime.getURL('redirect.html'), type: 'popup'},
function(tab)
{

});
return record;
})

}

我已经完成了给定的 getbackgroundpage 函数 here 。我可以用它访问变量 test0 但不能访问 sourceURL (因为它不在窗口范围内)。

通过重定向弹出窗口代码如下,

var bg = chrome.extension.getBackgroundPage();
var sourceURL = bg.sourceURL;
var testvariable = bg.test0;

sourceURL 未定义。

不知道如何将变量定义为全局变量以便在弹出窗口中访问。

有没有更好的办法,我们可以做到吗?

最佳答案

哥们,尝试使用Gogle message passing .

之前链接中的小例子

BackgroundScript

 var myFunc = function(){
//some code
}
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.messageType == "callSomeFunc") {
myFunc();
sendResponse({
status: "Function myFunc called."
});
}
//use return true for async response
return true;
});

contentScript

  chrome.runtime.sendMessage({
messageType: "callSomeFunc"
},
function(response) {
// response contain {status: "Function myFunc called."}
console.log(response);
});

关于google-chrome-extension - 如何从background.js访问变量以在chrome扩展中弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43698692/

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