活动页面和背景页面

2023-11-26

由于 Chrome 扩展文档中没有明确的解释,所以我来这里寻求帮助。

我了解到,背景页面基本上是为了延长扩展的生命周期而发明的,旨在保存值或保持“引擎”在后台运行,这样就没有人注意到它。因为一旦您单击扩展程序的图标,您就会看到他们所说的“弹出窗口”,一旦您单击“弹出窗口”之外,它就会立即消失,最重要的是扩展程序“死亡”(其生命周期结束)。

到目前为止,我们一切都很好,但是:事件页面是在那之后发明的
它们基本上是后台页面,仅在调用时才起作用(以提供更多内存空间)。

如果真是这样,那岂不是自相矛盾了?如果事件页面仅在被调用时才起作用,那么它们有什么用?


有时后台页面只需要响应外部的事件(消息、Web 请求、按钮点击等)

在这种情况下,一个活动页面说得通。它并没有像扩展停止一样完全卸载 - 它定义了它的事件处理程序(它想要监听的内容),然后关闭直到需要为止。将此视为“我要睡觉了;除非 A 发生,否则不要叫醒我。”

与您的示例的区别:关闭的弹出窗口完全不再存在,而Chrome 会记住它需要针对特定​​事件调用特定扩展。如果该事件发生,后台页面将再次启动,并在其中触发该事件。

这可以节省资源,但并不总是合适的。关闭后台页面的上下文会擦除其本地状态;它必须保存在各种存储API中而不是变量中。如果当地状态很复杂,可能不值得付出努力。此外,如果您的扩展需要非常快速或非常频繁地做出反应,则挂起/恢复可能会影响性能。

总而言之,事件页面并不能完全替代背景页面;这就是为什么它们是可选的而不是默认的。有有很多事情需要考虑制作活动页面时。

附:将您的“弹出窗口作为扩展程序最重要的部分”:这正是为什么它在大多数情况下不能成为最重要的部分的原因。通常,背景页面还与弹出窗口一起使用,以保留事件侦听器和本地状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

活动页面和背景页面 的相关文章

  • Chrome 扩展程序端口错误:无法建立连接。接收端不存在

    当我尝试从弹出窗口向我的内容脚本发送消息时 出现此错误 我想做的是从 content js 获取当前选项卡的文档并将其发送到弹出窗口 我该如何修复这个错误 manifest version 2 name Chrome Snapshot de
  • 使用 page_action 时不出现弹出窗口

    我是 Google Chrome 扩展开发的新手 我有以下两个疑问 我使用时没有出现弹出窗口page action在manifest json中 但在我使用时出现browser action 我想知道为什么 还是我做错了 该图标也显示为非活
  • Webpack 编译的 Chrome 扩展抛出 `unsafe-eval` 错误

    使用 Webpack 编译后重新加载 Chrome 扩展时出现此错误 Uncaught EvalError Refused to evaluate a string as JavaScript because unsafe eval is
  • chrome扩展需要从服务器端离线访问

    我正在构建一个 chrome 扩展 我用了chrome identity getAuthToken获取access token 这为我提供了客户端 浏览器 的access token 现在我想将此 access token 传递到我的服务器
  • 如何在 OS X 版 Chrome 上手动安装扩展程序?

    我已经创建了一个 chrome 扩展 我想将其手动添加到 mac osx 10 7 和 10 8 上的 chrome 我尝试执行以下步骤 在以下 url 下添加扩展文件夹 用户 talmutzafi 库 应用程序支持 Google Chro
  • 如何使用 jQuery 以编程方式单击 Gmail 中的“显示下面的图像”?

    我正在创建一个 Google Chrome 扩展程序 它使用 jQuery 在 Gmail 中添加了 显示下面的图像 链接的键盘快捷键 我尝试了以下方法来模拟点击 但未成功 canvas frame contents find span c
  • 将 Chrome 扩展上的权限移至可选

    我了解到 Chrome 在添加新权限时会禁用扩展程序 当我向扩展添加新功能时 我需要在permissions列表 现在我知道我应该使用optional permissions 我的问题是 如果我将网站列表从permissions to op
  • 获取特定选项卡的 URL?

    在 Google Chrome 中 如何获取特定选项卡上显示的页面的 URL 这取决于你如何定义特定选项卡 有许多功能可以获取选项卡 从而返回一个选项卡选项卡对象 http code google com chrome extensions
  • 如何保护 Chrome 扩展

    Chrome 扩展程序被打包为 zip 存档 设置完成后 它将安装在文件夹中 用户可以访问它 他还可以重写扩展 甚至克隆到新的扩展 如何保护扩展免受用户修改和克隆 我发现了 dll 文件的可能性 可以编译 但它不是很好 如果您有一些专有代码
  • Chrome + 另一个进程:进程间通信比 HTTP/XHR 请求更快?

    我有一个进程 1 对视频流进行实时图像处理 我需要在 Chrome 中的 HTML 页面中渲染该视频 同一台计算机上的进程 2 在canvas or img or videoHTML5 元素 由于我有 1000x1000 像素 x 3 字节
  • 如果从后台发送响应,则执行内容脚本中的函数

    对于我的 Chrome 扩展 我尝试将选定的文本发布到 PHP 网页 本网站已解决的问题 Chrome 扩展 如何捕获选定的文本并将其发送到网络服务 https stackoverflow com questions 2626859 chr
  • Chromium 上的 HEAD XMLHttpRequest

    我尝试使用 Chromium 中的 XMLHttpRequest 获取 HEAD 响应以检索压缩 url 的位置 URL 但失败 var ajax new XMLHttpRequest ajax onreadystatechange fun
  • 从 Chrome 扩展程序中设置活动页面中的值活动输入

    I wrote an extension for Chrome I want when I click on button from my extension the value abc will be set into active in
  • 阻止 Chrome 扩展程序的 popup.html 自动打开

    我正在创建一个 Chrome 扩展程序 其中包含background html每分钟从 API 请求一次信息的文件 收到信息后 它会发送消息popup html弹出窗口使用 JSON 信息将新的 HTML 元素附加到弹出窗口的主体上 问题是
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • 检测 Chrome 中的丰富通知是否可用

    我的 Chrome 扩展程序大量使用了 webkitNotifications 我想切换到新的丰富通知 chrome notifications http blog chromium org 2013 05 rich notificatio
  • 每个窗口都有单独的会话

    我正在尝试创建一个扩展 其中每个 Chrome 窗口都有自己的会话 我们之前使用过隐身模式 但问题是 虽然主窗口和隐身窗口有单独的会话 但会话在各个隐身窗口之间共享 有没有办法将 Chrome 配置为每次打开隐身窗口时使用单独的会话 您的目
  • 如何使用chrome扩展文件系统api?

    嗨 作为例子 我想阅读 c x txt as text 和写 有关于 chrome fileSystem 的例子吗 注意 我不想向用户询问文件的路径 已经回答于Chrome 扩展 HTML 文件系统访问 https stackoverflo
  • 当控制台在页面加载时打开时,Chrome 速度变慢

    1 Load page with webgl fast 2 Open console 较慢 60fps 但峰值要低得多 3 Refresh with console open 页面开始缓慢下降 就像没有多少 fps 一样 4 close a
  • Chrome 扩展:browserAction.onClicked.addListener() 未被调用

    我正在尝试编写一个非常简单的 Chrome 扩展 此时 它只是一个弹出 html 文件 当单击浏览器操作图标时 该文件会尝试显示警报 我显然做错了什么 因为警报没有触发 清单 json name Simple description Sim

随机推荐

  • 使用 Python 从非结构化文本中提取人的年龄

    我有一个行政档案数据集 其中包括简短的传记 我正在尝试使用 python 和一些模式匹配来提取人们的年龄 一些句子的例子是 邦德先生 67 岁 是英国的一名工程师 阿曼达 B 拜恩斯 Amanda B Bynes 34 岁 是一名演员 彼得
  • 如果所有汇总值均为 NA,则 dplyr 汇总保留 NA

    我想使用 dplyr summarize 按组对计数进行求和 具体来说 如果并非所有求和值都是 NA 我想删除 NA 值 但如果所有求和值都是 NA 我想显示 NA 例如 name lt c jack jack mary mary elle
  • PL/SQL FOR 循环隐式游标

    有2张桌子EMPLOYEES and DEPARTMENTS with department id作为主键DEPARTMENTS和外键EMPLOYEES 我想打印属于特定部门的所有员工姓名 我知道它可以通过 JOINS 或 JOINS 轻松
  • 为什么在 Windows 终端中用 Python 进行彩色打印不起作用? [复制]

    这个问题在这里已经有答案了 我可以在 ipython 中以绿色打印 test1 并以红色打印 test2 print 033 92m test1 print 033 91m test2 但在终端中以白色打印出以下错误 92mtest1 91
  • 如何确定我的 python shell 是在 32 位还是 64 位中执行?

    如何从 shell 内部判断 shell 处于什么模式 我试过看platform模块 但它似乎只是告诉您 用于可执行文件的位体系结构和链接格式 我的二进制文件被编译为 64 位 我在 OS X 10 6 上运行 因此即使我使用这些方法 它似
  • 无法加入字符串类型的 pandas 数据框

    我有两个 DataFrames 对象 其列如下 数据框1 df dtypes Output ImageID object Source object LabelName object Confidence int64 dtype objec
  • 从 C# 代码从 SQLite 导入/导出 CSV

    我正在尝试找出一种使用 System Data SQLite 将 CSV 文件加载到 SQLite DB 的简单方法 我看到了命令行方式来做到这一点 即 Import mydata csv mytable 但我需要通过 C 代码来完成此操作
  • F# 中使用守卫与 if/else 结构进行模式匹配

    在 ML 系列语言中 人们倾向于更喜欢模式匹配if else构造 在 F 中 在模式匹配中使用防护可以轻松替换if else在很多情况下 例如 一个简单的delete1可以在不使用的情况下重写函数if else see delete2 le
  • ASP.NET MVC + Fluent nNibernate,什么IoC工具?

    我正在开发一个 ASP NET MVC 项目 我们决定使用 Fluent nHibernate 进行数据访问 为了实现松耦合 我们采用 IoC DI 模式 我的问题是该选择什么 IoC 工具 我试图找出 Windsor ninject sp
  • C# 中数组索引的类型?

    C 中数组索引的类型是什么 例如 在下面的代码中 在访问数组元素 第三行 之前 索引是否会被转换为 int T myArray new T 255 byte index 2 T element myArray index 如果不是 使用 b
  • 是否可以使用其他 cpp 文件中的#define?

    我认为预处理器会一一处理文件 而我不知道如何使用包含来处理文件 所以我认为这是不可能的 但很高兴听到其他人的想法 我有在a cpp define A 1 我想用它2 cpp 编辑 我无法修改第一个文件 所以现在我只是复制了定义 但问题仍然存
  • HTML 转 PDF 与通过 PHP 以编程方式创建 PDF

    我有一个 PHP 应用程序 需要生成一些带有漂亮页眉 页脚的 PDF 发票和 PDF 时间表 一些 Stackoverflow 用户建议使用 TCPDF 创建 PDF 文档 在我的研究中 我发现了两种生成 PDF 的方法 1 以编程方式格式
  • 如何在 IE 中的文档上触发“onload”事件

    我目前正在为 Javascript 方法开发单元测试 用于检测文档的准备情况 该代码已经处于框架级别 因此请避免提及已在 jQuery 或其他库中实现的代码 我已使用以下代码成功模拟了 readystatechange 更改事件 var e
  • 从 scala 使用 Function java 接口的流畅方式?

    在工作中 大多数人都使用 Java 而我则使用 Scala 我们决定将一些常见的类收集到一个用 Java 编写的库中 现在我想向库中添加一些伪函数式编程 看看以下内容 java public interface Func
  • 在 JSF 中显示上传的图像

    我有一个视图范围的 bean 我在其中创建了一个人 一个人可以有一张照片 这张照片上传到创建此人的同一页面 图片未存储在数据库或磁盘上 因为尚未创建该人 该 bean 必须具有视图作用域 因为可以在其他地方创建人员并且使用相同的 bean
  • Python 类丢失属性

    我有一个特殊的 python 问题 在我的 gtk python 应用程序执行过程中 我的一些类对象神秘地丢失了属性 导致我的程序的一些功能被破坏 很难解释为什么会发生这种情况 我从来没有故意删除属性 并且有问题的类继承自我自己编写的类 而
  • Android - 在webview中登录后提取cookie

    我有一个在 web 视图中打开 url 的应用程序 然后用户必须通过 web 视图登录到站点并在登录后收到 cookie 我在登录后获取 cookie 时遇到问题 问题是 我可以使用 android webkit CookieManager
  • 在 Angular 5 项目中创建 Web 配置文件?

    我创建了一个 Angular 5 网站 我想使用 Webform 或 MVC 部署给客户 我只想更改 webconfig 文件中的一些变量 dbconnection 名称等 但使用 Angular 我不知道如何去做吧 那么每次部署的时候都得
  • 如何防止 Jetpack Compose 中不必要的重组

    我有一个TextField对于搜索查询和Button这将执行搜索 结果显示在列中 由于搜索需要几秒钟才能运行 我希望它在按下按钮时执行 而不是在文本更改时执行 这是一个简化的演示 Column val list remember mutab
  • 活动页面和背景页面

    由于 Chrome 扩展文档中没有明确的解释 所以我来这里寻求帮助 我了解到 背景页面基本上是为了延长扩展的生命周期而发明的 旨在保存值或保持 引擎 在后台运行 这样就没有人注意到它 因为一旦您单击扩展程序的图标 您就会看到他们所说的 弹出