gpt4 book ai didi

javascript - 何时以及为何需要 background.html 或 background.js?

转载 作者:行者123 更新时间:2023-11-30 05:37:55 25 4
gpt4 key购买 nike

我正在构建我的第一个 Chrome 扩展程序。我浏览了 Chrome 开发人员文档,但我无法理解几个主题。

我的理解:

  1. 有两个 Action :

    • 浏览器操作(地址栏外的按钮)
    • 页面操作(地址栏内的按钮)
  2. 对于这两个操作,我们都有背景页面:

    • 背景页面可以是 background.htmlbackground.js 用于浏览器操作
    • background.htmleventPage.js 用于页面操作

我正在使用页面操作。对于默认弹出页面,我使用了 popup.html

现在这个 background.htmleventPage.js 放在哪里(特别是 background.html,因为我已经有了我的 popup.html,我需要那个吗?)

eventPage.js 应该有什么? background.html 应该有什么?

最佳答案

在您的 manifest.json 中,如果您使用的是 "event page" (建议减少你的扩展的内存使用)你会有类似的东西

{
...
"background": {
"scripts": ["eventPage.js"],
"page": "eventPage.html"
"persistent": false
},
...
}

现在,上面的 list 实际上不起作用:你只能有 一个 "scripts""page" 键在 "background" 字典中。最简单的事情就是定义“脚本”。然后你可以写一堆javascript,让它运行以响应各种事件,比如chrome.runtime.onMessage。和 chrome.pageAction.onClicked .

您在 “scripts” 键中列出的 javascript 在 HTML 文档的上下文中运行,并且可以使用像 document.createElement() 这样的 DOM API。当它运行时。默认情况下,Chrome 会生成以下形式的文档:

<html>
<head></head>
<body>
<script src="event.js"></script>
</body>
</html>

保存您列出的脚本。如果您单击“检查 View ”旁边的“背景页面”链接,您将在 chrome://extensions/中看到它。但是,有时您可能希望该文档具有更多预定义的元素。我见过这样的例子:

<html>
<head></head>
<body>
<script src="event.js"></script>
<canvas width="300" height="400" id="the_canvas"></canvas>
</body>
</html>

因此 event.js 可以使用 document.getElementById('the_canvas') 检索它可以在其上绘制的 Canvas 。没有自定义文档,您的 javascript 仍然可以运行:

var canvas = document.createElement('canvas');
canvas.width = 300;
canvas.height = 400;

得到的结果是一样的,但是文档可以更简单。该 HTML 文件就是您放入 list 中的 background.page 键的内容。

正如@SirDemon 所提到的,如果您将所有内容都放入 browser action 中,有时您可以完全没有背景/事件页面。的弹出窗口。因为一个page action应该只出现在与其相关的页面上,您通常需要一个背景/事件页面来控制页面操作。

关于javascript - 何时以及为何需要 background.html 或 background.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22464026/

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