Background.js 找不到使用内容脚本注入的内容

2024-03-23

我的 Chrome 扩展有一个内容脚本,可以将自定义 DIV 注入当前页面。这部分有效。

但是,该扩展还有一个右键单击上下文菜单,单击该菜单时,应该以某种方式修改此注入的 DIV(比方说,向该 DIV 添加一些文本)。问题是找不到注入的内容。右键菜单处理程序位于Background.js 中,该文件对内容一无所知。

清单.js

"content_scripts": [
    {
        "matches": [
            "http://*/*",
            "https://*/*"
        ],
        "css": ["contentstyle.css"],
    "js": ["jquery-1.11.2.min.js", "contentscript.js"],

"background": {
    "persistent": true,
    "scripts": ["background.js"]  
},     

内容脚本.js

// Add Custom DIV - works OK
var div = document.createElement( 'div' );
div.id = 'infoDiv';
document.body.appendChild( div );
document.getElementById('infoDiv').innerHTML = 'TEST';

背景.js

// Add menu - gets added, but can't see Injected Content from here
chrome.contextMenus.create({
    "title": "My Right-Click Menu",
    "contexts": ["image"],
    "onclick" : changeDiv
  });

function changeDiv(e)
{
    var divHTML = document.getElementById('infoDiv').innerHTML;
    alert('Current HTML in DIV: ' + divHTML);
}

我无法从后台脚本获取 divHTML,存在某种错误并且没有警报框。背景和内容之间可以沟通吗?我被迫在后台脚本中实现菜单,对吧?


Wrong document in

var divHTML = document.getElementById('infoDiv').innerHTML;

请阅读架构概述 https://developer.chrome.com/extensions/overview#arch第一的。您的后台脚本在单独的 HTML 文档中执行,因此不会“看到”选项卡中的页面。

您需要将该值传递给内容脚本才能对可见页面执行某些操作。你可能需要消息传递 https://developer.chrome.com/extensions/messaging.

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

Background.js 找不到使用内容脚本注入的内容 的相关文章

  • 为什么可以从 console.log 访问 JavaScript 私有方法

    我写了一个简单的代码 const secure new class privateProperty 4 privateMethod console log The property this privateProperty should n
  • 没有函数或 json 的 JavaScript 大括号

    刚刚打开客户端的 javascript 文件 第一行是这样的 var s account blog 我不明白 通常 根据我的经验 花括号包裹着一个函数 function welcome or a json JavaScript object
  • Cypress:在 JSON 响应中存根特定键

    我想在 Cypress 中存根以下响应 专门存根密钥ds version 可能的值为 0 1 或 2 每个值将在 UI 上显示不同的元素 fixtures user json email email protected cdn cgi l
  • 如何在 Javascript 中获取时区名称(PDT、EST 等)? [复制]

    这个问题在这里已经有答案了 使用 Javascript 有没有办法根据用户的设备获取用户的时区名称 PDT EST 等 我尝试过的代码 const timezone jstz determine const userTimezone tim
  • javascript - 动态变量

    您好 我正在尝试创建动态变量 但它说 变量 v0 到 v5 未定义 td each function i eval var v i this html 任何帮助将不胜感激 这听起来是个坏主意 你有什么理由不能这样做吗 var tdHtml
  • 定时器内嵌套异步等待 - 不返回所需的值

    我必须使用 Mocha 和 chai 测试来测试端点的响应 下面是相同的代码 async function getData userId let response let interval setInterval async gt resp
  • Javascript:打乱数组中的对象组

    我有一个对象数组 我已按键排序 group如下 使得所有具有相同值的对象group在索引中彼此相邻data 例如 var data foo cat group house foo cat group house foo cat group
  • 为什么有人将(Apache mod_expires 参数)ExpiresByType 设置为“访问加 0 秒”?

    在审查答案时这个帖子 https stackoverflow com questions 9933012 how to use mod headers and mod expires to cache 我不明白为什么这里使用 0 秒作为最佳
  • ajax 调用成功后点击链接 href

    我有一个正常的链接 a href http www google com class continue Continue a 我已将点击绑定到一个事件来发布 ajax 请求 如下所示 continue click function ajax
  • 是否可以向 JavaScript 函数发送可变数量的参数?

    是否可以从数组向 JavaScript 函数发送可变数量的参数 var arr a b c var func function debug alert arguments length for arg in arguments alert
  • 未捕获的安全错误:阻止了具有原点的框架...访问具有原点的框架

    我已经为 SAP 解决方案 无论什么 制作了一个组件 该组件通过 iframe 嵌入到报告中 在 SAP 平台 BO 上部署报告后 我收到此错误 在 Chrome 上 但在 IE 或 FF 上也不起作用 Uncaught SecurityE
  • Antd 选择搜索框未呈现匹配项

    我有产品数据 我正在使用搜索值过滤数据 然后使用过滤后的数据呈现选项 产品数据作为道具来自全局 redux 存储 由于某种原因 下拉列表仅在搜索值为空时显示数据 当我开始输入时 filteredData已更新 组件也重新渲染 但选项不显示任
  • 如何在 AWS Amplify 上运行 React/Redux 应用程序的代理

    我最近实施了Proxy 在 Express js 中 对于我的反应应用程序发出请求时隐藏 API URL 当我在本地主机上运行代理和应用程序时 它工作得非常好 现在我已准备好将我的应用程序部署到AWS 放大 我对如何让我的代理在那里运行有点
  • JavaScript:嵌套循环?

    我想实现这样的动画 序列 动画以循环开始 想象一下car从 x1 移动到 x2 然后暂停 1 秒 然后再次播放动画 想象一下car从 x2 移动到 x3 等 the car循环是通过向汽车左侧添加 1px 来实现的 值 但我无法弄清楚嵌套循
  • 主干集合排序

    我制作了我的第一个主干应用程序 但在集合排序方面遇到了一些问题 使用这个后 var SortedFriends MyFriends sortBy function friend return friend get uid console l
  • Angular - 将焦点放在动态创建的输入字段上

    我如何将焦点添加到新创建的字段 参见到目前为止的示例 http jsfiddle net aERwc 165 http jsfiddle net aERwc 165 scope addField function console log h
  • 如何制作实时jquery效果?

    我想制作一个实时提要阅读器 并且我想要一个解决方案 使新项目无需刷新页面即可出现 并且具有像friendfeed一样的滚动效果 你可以在这里看到我在说什么 http www vimeo com 4029954 http www vimeo
  • Google 折线图添加对象数组

    我有一个通过解析 JSON 字符串创建的对象数组 var measurementData Html Raw JsonConvert SerializeObject this Model Item1 var stringifiedData J
  • 将响应式网格布局转换为 Plotly Dash

    我是一个非常活跃的 Dash 用户 我开始发现 Dash 使用中存在很多限制 并且我意识到有关如何将组件转换为 Dash 的信息 内容绝对有限 并且示例过时且非常简单 并且我对 Javascript 或 React 几乎没有任何了解 我完全
  • IE 中带有“删除”方法的 jQuery.ajax 问题

    我有一个页面 用户可以使用按钮编辑各种内容并选择触发 ajax 调用 特别是 一个操作会导致远程调用一个 url 其中包含一些数据和 放置 请求 这 因为我使用的是宁静的 Rails 后端 会触发我的更新操作 我还有一个删除按钮 它调用相同

随机推荐

  • Nginx 位置 try_files 与 add_header 重定向和 cors

    我想将请求重定向到index php以启用漂亮的链接 使用try files可以实现此目的 但是我似乎无法让try files和add headers同时工作 我当前的位置块如下所示 location api v1 try files ur
  • 使用 Jquery 动态生成时 Facebook 标签不会呈现

    给您一个简单的用例 在我的网站上 我显示 Facebook 用户发布的评论 对于每条评论 我都会使用 fb profile pic 标签和类似 fb 的按钮来显示 facebook 用户的照片 该页面渲染正确 所有内容都显示良好 现在 当用
  • RSpec 匹配器,用于检查集合以包含满足 lambda 的项目

    我对如何编写 RSpec 3 2 x 规范来检查列表是否包含至少一个满足条件的项目有点不知所措 这是一个例子 model Invoice new model name test changes model changes expect ch
  • 如何删除“clip-path”的不可见部分?

    我想剪切尺寸各不相同 高度各为 50 的图像 所以我想到使用 inset 方法clip path财产 但是 在这个属性中 切出的空间仍然保持高度 container display flex align items start img fl
  • 打开弹窗,让外人依然可以触摸

    如何在Android上打开PopupWindow并让所有其他组件可触摸而不关闭PopupWindow 它是这样创建的 public class DynamicPopup private final PopupWindow window pr
  • 线程“main”中的异常 java.lang.IllegalMonitorStateException

    我正在与Thread in Java我收到以下错误 我不明白为什么 Code import java util Random public class Test public static void main String args thr
  • 代码优先:仅在执行某些代码后才创建数据库?

    我想先使用代码创建一个数据库 我的数据库始终处于 DropCreateDatabaseAlways 模式 我注意到 如果我不尝试对数据库执行一些查询 例如 using var db new Models TnHContext var que
  • CodeIgniter - 获取最后一个 URI 段

    我试图获取 CI 中的最后一个 URI 段 但我不知道它的编号是多少 因为当用户单击页面内的链接时 将附加参数 整数 然后在控制器中使用它们通过 ajax 将相关数据库记录拉入页面 我如何告诉 CI 获取最后一段 就像是 record nu
  • 使用javascript在数组中组合单词

    假设我有一个数组 Alex Sam Robert 我想将它们组合起来 例如 获取第一个数组 0 并附加数组 2 这将是 AlexRobert array 0 的第一个字母是 A 并附加 array 2 的第一个字母 即 Robert 这将是
  • 使用 Extendscript 编写二进制文件。文件大小不正确

    进一步我的问题here https stackoverflow com questions 63022178 read binary file with extendscript我正在使用 Extendscript 将十六进制颜色列表从 P
  • 使用 OrbitControls 时锁定 x 轴旋转 - Three.js

    使用 OrbitControls 时锁定 x 轴旋转是否可行 目前我有一个挂在绳子上的圣诞星的对象模型 我希望它仅水平旋转 对于您的 OrbitControls 实例集 controls minPolarAngle Math PI 2 co
  • Twitter Bootstrap Datepicker 不会更新输入值

    我有这段代码 但现在我陷入困境
  • Unicode 联盟是否打算让 UTF-16 字符耗尽?

    当前版本的 UTF 16 只能编码 1 112 064 个不同的数字 码点 0x0 0x10FFFF Unicode 联盟是否打算让 UTF 16 字符耗尽 即创建一个代码点 gt 0x10FFFF 如果不是 为什么有人要编写 utf 8
  • Go中for循环中的多个变量

    我正在尝试在 Go 中编写一个带有多个变量的 for 循环 来自 javascript 世界 我想实现这样的目标 var i 10 var b 2 for var a b i i 2 b b some code 我尝试过这样的 原始翻译 i
  • laravel 5 在运行时更改数据库名称

    有没有办法更改连接的数据库名称而不是添加另一个连接 如果我在 Config database connections 中添加 3 或 5 个数据库是可以的 但是如果我正在使用 100 个或更多数据库怎么办 由于所有人都使用相同的主机 用户名
  • 什么属于聚合根

    这是一个实用的领域驱动设计问题 从概念上讲 我认为我得到了聚合根 直到我去定义一个聚合根 我有一个 Employee 实体 它已作为聚合根出现 在商业领域 some员工可以记录与工作相关的违规行为 员工 违规行为 由于并非所有员工都受到此限
  • 将数据表从一个数据集复制到另一个数据集

    我正在尝试将位于不同数据集 Y 内部的数据表添加到新的数据集 X 如果直接添加的话 会出现以下错误 DataTable 已属于另一个 DataSet 我是否必须克隆 DataTable 并将所有行导入其中 然后将新的 DataTable 添
  • 动画径向渐变CSS3:从左到右移动? [复制]

    这个问题在这里已经有答案了 我想要一个带有径向渐变的动画背景radial gradient circle rgba 255 255 255 0 8 0 rgba 255 255 255 0 100 将其从左向右移动 http jsfiddl
  • Magento 多个 Authorize.net 网关

    我见过这个关于货币类型的问题 但我要问的是如何在同一商店为不同的信用卡类型配置第二个 Authorize net 帐户 因此 我们希望一些信用卡使用第一个主 Authorize net 网关 而其他信用卡使用辅助 Authorize net
  • Background.js 找不到使用内容脚本注入的内容

    我的 Chrome 扩展有一个内容脚本 可以将自定义 DIV 注入当前页面 这部分有效 但是 该扩展还有一个右键单击上下文菜单 单击该菜单时 应该以某种方式修改此注入的 DIV 比方说 向该 DIV 添加一些文本 问题是找不到注入的内容 右