gpt4 book ai didi

google-chrome - 将变量从后台传递到 Chrome 扩展程序上的弹出窗口

转载 作者:行者123 更新时间:2023-12-04 20:09:26 25 4
gpt4 key购买 nike

我想做一个简单的扩展,它将一个变量从后台传递到弹出窗口。问题是,我得到“未定义”的回应。

显现:

{
"name": "Get var",
"description": "get var",
"version": "2.0",
"permissions": [
"activeTab"
],
"background": {
"scripts": ["background.js"],
"persistent": true
},
"browser_action": {
"default_title": "Get that variable",
"default_popup": "popup.html"
},
"manifest_version": 2
}

背景.js
 var myURL = 'aaa';

弹出窗口.html
<!doctype html>
<html>
<head>
<script src="popup.js"></script>
</head>
<body>
</body>
</html>

弹出窗口.js
document.addEventListener('DOMContentLoaded', function () {
var bg = chrome.extension.getBackgroundPage();
var myURL = bg.myURL;
alert(myURL)

});

最佳答案

您的代码(正如您在问题中发布的一样)是正确的,应该可以正常工作。 (事实上​​,当我使用您提供的代码创建示例扩展时,它确实按预期工作。)
您要么在复制粘贴实际代码时不小心更改了某些内容,要么有其他事情将事情搞砸了(您在帖子中遗漏了某些内容)。

顺便说一句,我建议查看 event-pages (即非持久性背景页面)更资源友好。请记住,移动到事件页面需要进行一些更改才能使代码正常工作:

document.addEventListener('DOMContentLoaded', function () {
chrome.runtime.getBackgroundPage(function (bg) {
var myUrl = bg.myUrl;
alert(myUrl);
});
});

备注 : 我不以任何方式暗示您收到 undefined 的原因是你使用了一个持久的背景页面。您发布的代码应该适用于持久的背景页面 - 使用事件页面(只要可能)是更好的做法。

关于google-chrome - 将变量从后台传递到 Chrome 扩展程序上的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570319/

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