javascript - 在 Chrome 扩展程序中查看后台 HTML 页面

标签 javascript html google-chrome google-chrome-extension

我正在开发 Chrome 扩展程序。目的是在页面上显示从多个服务器收集的数据。我利用 Chrome 扩展程序在 PC 开启时作为后台进程运行的功能,以便始终收集数据。

Manifest.json

{
   "manifest_version": 2,

   "name": "Data Hub",
   "description": "This extension gathers and analyzes data from several servers",
   "version": "1.0",

   "browser_action": {
      "default_icon": "icon.png",
      "default_popup": "popup.html"
   },
   "background": {
      "page": "background.html"
   },
   "permissions":[
      "background"
   ],
}

Popup.htmlPopup.js

单击弹出图标时打开一个新的Background.html 实例。

Work.js

无限循环:发出AJAX请求、处理数据并更新Background.html。脚本位于我的扩展文件夹中。

背景.html

每个实例都调用自己的 Work.js 实例。

<小时/>

如果我单击弹出窗口,Background.html 的新实例将在新选项卡中打开。我可以在 chrome://extensions/ 中看到现在有 2 个 Background.html 实例。它从此时开始显示数据,我可以看到页面的 HTML 元素。关闭选项卡后,该数据就会丢失。

我希望能够看到原始Background.html 页面的HTML 元素。原始实例自启动以来一直在运行,并在 Chrome 关闭时继续运行,因此它包含所有数据。

chrome://extensions/中,当我点击查看Background.html的原始实例时,我只能看到开发者工具,而看不到页面上的HTML元素。

最佳答案

仅仅因为文件名为background.html,当您在选项卡中打开它时,它不会成为背景页面。它变成了另一个具有自己的上下文、文档、窗口的页面 - 并且这一切仅在该选项卡关闭之前才存在。这些扩展只有一个真实的背景页面,该页面在 manifest.json 的 "background" 部分中声明。

请务必阅读 extensions architecture overview并修改你的代码。您可以将数据保存在chrome.storage.local中或者您可以使用chrome.extension.getBackgroundPage()在扩展程序的其他页面中访问将公开全局变量和函数的真实且唯一的后台页面 window 对象。

关于javascript - 在 Chrome 扩展程序中查看后台 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44978382/

相关文章:

google-chrome - 内容脚本可以访问新的标签页吗?

javascript - 如何在给定时间后重新加载网页的一部分?

javascript - 这个函数调用有什么区别?

html - 从 DOM 的特定元素选择性地复制 HTML+CSS+JS 的工具

javascript - 嵌入式 Youtube 视频无法在移动 iOS Safari 中播放

javascript - "Un-require"一个函数

jquery - 当悬停时不透明度发生变化时,Google Chrome 中的背景会发生变化

jquery - chrome 中固定定位的 flexslider 和粘性导航的定位问题

javascript - 正则表达式匹配字符,除非它前面有奇数个另一个特定字符

javascript - 浏览器调整大小后不会触发点击事件