在 Chrome 扩展内容脚本中共享内存中对象?

2024-06-23

我对 JavaScript 和 Chrome 开发都很陌生,正在尝试创建一个在某些网页中注入内容/CSS 的扩展。很简单,但问题是这样做需要查看本地存储中的大量数据。根据我到目前为止所读到的内容,正确的方法是:

  1. 读取所需数据(JSON 序列化)每次访问页面时直接从内容脚本存储,或者
  2. 在扩展后台页面维护状态并传输所需数据(也 JSON 序列化)使用消息传递到内容脚本环境。

然而,由于在每次页面加载时都会不必要地序列化和反序列化大量数据,因此这两种方法的效率都非常低。

所以,我想知道:

  • 有没有可能以任何方式维护共享内存缓存在 Chrome 中,所有选项卡中注入的内容脚本都可以访问?

  • 如果没有,是否可以采用另一种方法,即后台页面侦听chrome.tabs.onUpdated事件并以某种方式修改目标 DOM 本身?


1)我认为这是不可能的。你似乎已经用尽了所有的可能性。

2) 内容脚本是访问/修改普通选项卡 DOM 的唯一方法。

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

在 Chrome 扩展内容脚本中共享内存中对象? 的相关文章

  • javascript 可以从父页面访问 iframe 元素吗?

    我的页面上有 iframe iframe 和父页面位于不同的域中 父页面上的 javascript 代码可以访问此 iframe 内的元素吗 如果页面来自不同的域 则不应该这样做 浏览器安全沙箱应该阻止这种类型的访问 当两个页面来自不同的时
  • Puppeteer - 错误:协议错误 (Network.getResponseBody):找不到具有给定标识符的资源

    我正在尝试使用此代码使用 puppeteer 从网站获取响应正文 usr bin env node require dotenv config const puppeteer require puppeteer const readline
  • 可以跨 iframe 共享 javascript 导入吗?

    我有一个 Web 应用程序 其中有多个 iframe 它们都需要导入相同的 javascript 库 例如 jquery 有没有办法只加载一次并以某种方式在所有 iframe 之间共享该数据 我不想让我的页面加载缓慢 因为它为每个 ifra
  • 克隆表行

    我怎样才能使用javascript 我假设 来克隆一个表格行 就像下图所示的那样 您可以将现场活动连接到所有按钮 例如 如果您给他们一类克隆 则以下内容将起作用 input clone live click function put jqu
  • 使用 IE 11 和 AngularJS 的 2 路数据绑定问题

    我最近在使用 AngularJS 的 Web 应用程序上构建了一个功能 但在 IE 11 上遇到了一些问题 apply 将数据更改写入 DOM 由于某种原因 这种情况仅有时发生 而当我尝试调试问题时却从未发生 这使得它看起来像是一个计时问题
  • 如何在 Bootstrap 中将单选按钮设置为“选中”? [复制]

    这个问题在这里已经有答案了 我使用 Bootstrap 按钮作为单选按钮 http getbootstrap com javascript buttons http getbootstrap com javascript buttons 这
  • $(document).ready 回调何时执行?

    假设我们附加一个 click http api jquery com click 锚点的处理程序 a 中的标签 document ready http api jquery com ready 打回来 该处理程序将取消默认操作 遵循href
  • 如何使用React Native在屏幕上绘图?

    我正在尝试在 React Native 中实现一个 Android 绘图应用程序 我正在使用 PanResponder 但我不知道如何获取用户触摸的部分的坐标 我尝试过使用react native svg但我不知道该放在哪里PanRespo
  • ECMAScript 中定义的内部属性是什么?

    什么是内部属性 http es5 github com x8 6在 ECMAScript 中定义为 规格是什么意思 该规范使用各种内部属性来定义 对象值的语义 这些内部属性不是 ECMAScript 语言 它们是由本规范定义的 纯粹用于说明
  • 在 json 对象中执行 javascript 代码?

    有远吗 所以像这样 key1 val1 key2 val2 some code document getElementById someid innerHTML test 那么 some code 会在没有任何用户干预的情况下执行吗 No
  • 重复 Pinterest Facebook 邀请功能

    I m trying to duplicate Pinterest s Invite Friends functionality In case you haven t seen what it looks like it looks li
  • javascript 中的工厂模式与构造函数模式[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我看到了关于 javascript 设计模式的教程 虽然教程很好 但它给我留下了很少的问题 正如我所见 工厂和构造函数产生相同的结果
  • 如何在传单地图上显示热图

    我想在我的传单地图上显示热图 我使用了 heatmap jshttps github com pa7 heatmap js https github com pa7 heatmap js但它最终只是显示 未捕获的类型错误 无法分配给只读属性
  • 在 ReactJS 中更改 URL onClick

    在我的项目中我有一个TabComponent它显示 3 个选项卡 首页 热门 全部 现在 我正在使用context反应维持 activetab它存储当前选项卡 toggleTab改变的方法activetab using setState 选
  • 脚本不会从nodejs应用程序中的ejs文件运行

    我正在尝试使用nodejs express mysql和ejs让网页显示图表 但我显然不明白ejs javascript等是如何工作的 我需要运行一个脚本来设置图表 来自 Chart js 模块 但它不会输出任何类型的图表 我尝试过的 将
  • 在 JavaScript/CoffeeScript 中确定一个数组是否包含另一个数组的内容

    在 JavaScript 中 如何测试一个数组是否包含另一个数组的元素 arr1 1 2 3 4 5 8 1 10 2 3 4 5 9 function name arr1 gt true 没有 set 函数可以执行此操作 但您可以简单地执
  • Google Maps API - 调整大小会生成空白区域

    我正在研究一个看起来非常简单的功能 但却引起了一些头痛 我使用 GIS 并将其与 Google 地图集成 其中一位客户要求能够打开一个仅显示地图的单独弹出窗口 打开窗口不是问题 但当我尝试扩展包含地图的 IFrame 的宽度时 为了适应窗口
  • 即使切换它时,hasClass 也始终返回 false

    我有以下代码
  • ASP.NET MVC3 Ajax.ActionLink - 条件确认对话框

    我有一个 Ajax ActionLink 仅当满足某些条件 用户有未保存的更改 时 我才希望显示一个确认对话框 我创建了一个 JavaScript 函数 它根据需要显示确认对话框 并根据响应返回 true 或 false 我将其绑定到 Ac
  • CSS 链接图像带有下划线(“a”显示设置为阻止)

    我有一个菜单 我希望每个单独的项目中文本周围的所有空间都能将用户带到指定的页面 我在网上查了一下 发现最好的解决方案是将 a 显示设置为阻止 如下 a display block height 100 text decoration und

随机推荐

  • Linux 内核中的 64 位 time_t

    我已经编译了内核 3 19 1 但仍然有问题time t 只是一个简单的程序cout lt lt sizeof time t 给出 4 个字节的大小 而不是我的意图的 8 个字节 我应该在 make menuconfig 期间打开特定选项吗
  • 在两个居中的 div 上重叠文本

    我正在尝试修改代码来做一些不同的事情 但我无法让它工作 这是代码 div class all rounded div class all rounded style width 88 88 100 div div 这呈现 使用这个CSS a
  • Android 上升级应用程序后是否可以重新启动服务?

    升级我的应用程序后 我希望该服务重新启动 如果它之前正在运行 有什么办法可以做到这一点吗 我没有看到任何可以在清单中注册的广播意图 你是对的 你应该使用BroadcastReceiver 看一下关于升级时重新启动警报的问题 https st
  • package.json 中这些带有下划线前缀的属性有何用途?

    我在 package json 中发现这些属性带有下划线前缀 它们有什么用 为什么要在属性上添加下划线前缀 from email protected cdn cgi l email protection id email protected
  • D3 v4 中的 d3.rebind

    所以我在网上找到了这段代码 它计算 d3 图中节点上的 dijkstra 最短路径算法 问题是 d3 rebind 已被删除 我还没有找到修复这段代码以使其工作的方法 有什么建议么 我也知道这段代码不是我的 所以这就是为什么我在理解如何更改
  • 使用 Nunjucks 模板按整数值循环

    我对 nunjucks 很陌生 从我读到的内容来看 这是不可能的 但我想知道是否有人想出了一种方法来做到这一点 我基本上希望根据值而不是对象的大小在 nunjucks 模板中执行 for 循环 假设您将以下数据传递给模板 假设房间数值是从列
  • pythonlogging.handlers.RotatingFileHandler是否允许创建组可写日志文件?

    我正在使用标准 python 2 5 2 日志模块 特别是RotatingFileHandler 在Linux系统上 我的应用程序同时支持命令行界面和 Web 服务界面 我希望两者都写入同一个日志文件 但是 当日志文件轮换时 新文件已644
  • PropertyUtils.copyProperties 什么时候可以默默地失败?

    我在用着PropertyUtils copyProperties http commons apache org beanutils api org apache commons beanutils PropertyUtils html c
  • Pydub from_mp3 给出 [Errno 2] 没有这样的文件或目录

    我发现自己站在墙前 只是尝试将音频文件加载到 pydub 中进行转换 但不断抛出 Errno 2 没有这样的文件或目录 错误 当然 我花了太多时间来确保路径有效 尝试了相对路径和绝对路径 并确认 python 方法 open 可以在完全相同
  • CSS-hack - 在网站正文中添加 css

    我陷入了只能访问网站正文而不能访问网站头部的情况 我必须使用新的样式表 现在我遇到了在网站正文中添加 CSS 文件的解决方案 当然 这是一个黑客 所以我想知道是否有更好的解决方案 我们有不同的方法来加载 CSS 文件 1 HTML 在页面上
  • iPhone VS ipad开发流程(异同)

    我是 iOS 开发新手 我正在努力弄清楚这些事情 iPhone 和 iPad 上的项目 两者有哪些相同之处 编码 图形或 UI 应用程序的设计模式相同还是不同 等待答复 谢谢 就我个人而言 我发现 iPhone 和 iPad 之间唯一真正的
  • 如何在oracle 11g SQL中计算两个日期之间的差异

    当我尝试使用 datediff 函数计算日期差时 它显示该无效标识符 SELECT DATEDIFF day 2008 08 05 2008 06 05 AS DiffDate from da static trade Error inva
  • 如何使用后期绑定访问 Microsoft Word 现有实例

    我正在用 C 开发一些代码 我将在其中与 Microsoft Word 进行交互 我希望能够选择重新使用现有实例或作为创建新实例的替代方案 请记住 我想使用 LATE BINDING 来完成所有这些 可以肯定地说 我已经弄清楚如何在创建新实
  • 我可以像在 C++ 中那样在 R 中拥有多个独立的随机数生成器吗?

    我有许多独立的随机过程 比如到达过程 需要我生成随机数 我想对每个进程使用通用随机数 以便在控制这些策略时比较不同策略的执行情况 我希望进程 A 由生成器 A 控制 使用种子 A 我希望进程 B 由生成器 B 控制 使用种子 B 等等 这可
  • ASP.NET Core 中的 HttpRequest.Path 和 HttpRequest.PathBase 有什么区别?

    详细信息如下 https learn microsoft com en us dotnet api microsoft aspnetcore http httprequest view aspnetcore 3 0 https learn
  • 如何检测IIS Express版本?

    我发现我们的 ASP NET 应用程序在 IIS Express 中的不同计算机上运行方式不同 全部都有 VS 2012 Net 4 5 和集成模式 但有些有 VS 2012 Update 1 有些则没有 如何找到 IIS Express
  • 查找一个字段大于另一字段的行

    我的 SQL 有点生疏了 我无法找到一种方法来检索一个值大于另一个值的行 例如 我有以下行 ROWID 1 CreatedAt 2013 08 03 10 10 23 344 UpdatedAt 2013 08 03 11 10 23 34
  • 对 ArangoDB 文档集合进行重复数据删除

    我确信有一种简单快捷的方法可以做到这一点 但它却让我无法理解 我有一个包含一些重复记录的大型数据集 我想删除重复项 重复项由一个属性唯一标识 但文档的其余部分也应该相同 我尝试以几种不同的方式创建一个仅具有唯一值的新集合 但它们都非常慢 例
  • 自动接受安装 NPX 包 [重复]

    这个问题在这里已经有答案了 运行 NPM 包时npx第一次会出现提示询问是否要下载包 例如 如果您运行命令npx some npm package 您会收到以下提示 Need to install the following package
  • 在 Chrome 扩展内容脚本中共享内存中对象?

    我对 JavaScript 和 Chrome 开发都很陌生 正在尝试创建一个在某些网页中注入内容 CSS 的扩展 很简单 但问题是这样做需要查看本地存储中的大量数据 根据我到目前为止所读到的内容 正确的方法是 读取所需数据 JSON 序列化