Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 何时以及为什么需要background.html或background.js?_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 何时以及为什么需要background.html或background.js?

Javascript 何时以及为什么需要background.html或background.js?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在构建我的第一个Chrome扩展。我已经阅读了Chrome开发者文档,但我不能理解几个主题 我的理解是: 有两项行动: 浏览器操作(地址栏外的按钮) 页面操作(地址栏内的按钮) 对于这两个动作,我们都有背景页面: 对于浏览器操作,背景页面可以是Background.html或Background.js 或background.html或eventPage.js用于页面操作 我正在使用页面操作。对于默认的弹出页面,我使用了popup.html 现在这个background.html和e

我正在构建我的第一个Chrome扩展。我已经阅读了Chrome开发者文档,但我不能理解几个主题

我的理解是:

  • 有两项行动:

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

    • 对于浏览器操作,背景页面可以是
      Background.html
      Background.js
    • background.html
      eventPage.js
      用于页面操作
  • 我正在使用页面操作。对于默认的弹出页面,我使用了
    popup.html

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

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

    您不一定需要背景页面或背景脚本。如果您打算创建一个不需要任何人工交互的扩展,那么您将需要它们


    页面和浏览器操作通常意味着你想要有某种用户界面,所以不需要背景资料。只需像平常一样将脚本等添加到主“默认弹出”html页面中。

    清单.json中,如果您使用(建议减少扩展内存使用量)的

    {
      ...
      "background": {
        "scripts": ["eventPage.js"],
        "page": "eventPage.html"
        "persistent": false
      },
      ...
    }
    
    现在,上面的清单实际上不起作用了:在
    “background”
    字典中只能有一个
    “scripts”
    “page”
    键。最简单的方法是定义
    “脚本”
    。然后您可以编写一组javascript,并让它运行以响应各种事件,如和

    “scripts”
    键中列出的javascript在HTML文档的上下文中运行,并且可以在运行时使用DOM API。默认情况下,Chrome将生成以下格式的文档:

    <html>
      <head></head>
      <body>
        <script src="event.js"></script>
      </body>
    </html>
    
    并得到相同的结果,但文档可能更容易。该HTML文件是您在清单的
    background.page
    中输入的内容


    正如@SirDemon所提到的,如果你把所有东西都放进a的弹出窗口中,你有时可以完全不带背景/事件页面。因为a应该只出现在与其相关的页面上,所以您通常需要一个背景/事件页面来控制页面操作。

    谢谢您的回答@SirDemon。我刚刚发现,当我使用pageaction时,为了显示我的页面,我需要调用一个方法,该方法需要tabID。要获取TabID,我必须访问contentScript.js,并根据请求向eventPage.js发送调用。我已经这样做了,但它不起作用。你能帮我吗?首先,为了使用选项卡,最好将“选项卡”添加到你的权限清单中。除此之外,我还需要确切地知道代码中有哪些地方失败,才能知道如何提供帮助。
    <html>
      <head></head>
      <body>
        <script src="event.js"></script>
        <canvas width="300" height="400" id="the_canvas"></canvas>
      </body>
    </html>
    
    var canvas = document.createElement('canvas');
    canvas.width = 300;
    canvas.height = 400;