在Chrome扩展程序中将变量从背景传递到弹出窗口

 王意之 发布于 2023-02-10 23:53

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

表现:

{
  "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
}

background.js

 var myURL = 'aaa';

popup.html



  
    
  
  
  

popup.js

document.addEventListener('DOMContentLoaded', function () {
   var bg = chrome.extension.getBackgroundPage();
    var myURL = bg.myURL;
  alert(myURL)

});

gkalpak.. 7

您的代码(正如您在问题中发布的那样)是正确的,应该可以正常工作.(事实上​​,当我使用您提供的代码创建示例扩展时,它确实按预期工作.)
您在复制粘贴实际代码时意外更改了某些内容,或者还有其他东西搞乱了(您从帖子中遗漏了一些内容) ).


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

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

注意:我不以任何方式暗示您收到的原因undefined是您使用持久性背景页面.您发布的代码应该可以在持久的后台页面中正常工作 - 使用事件页面(只要有可能)这是更好的做法.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有