问题标签 [content-script]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Chrome 扩展将外部 javascript 添加到当前页面的 html
我正在通过我的 chrome 扩展在页面末尾添加一些外部 JavaScript。然后,外部 JavaScript 尝试将一些数据发送回服务器,但这并没有发生。
JavaScript 想要获取当前页面的 url 和引用者并将其发布回服务器。
谁能告诉我这里出了什么问题,如果不可能,我该如何将当前页面的数据发布回服务器。
清单.json
现在 contentScript.js
javascript - 有条件地将内容脚本加载到 FF/Chrome 中的 Safari 扩展程序中?
我正在为 Chrome、Firefox 和 Safari 编写一个相当复杂的浏览器扩展。
在 Chrome 和 Firefox 中,我可以根据 URL 匹配指定将哪些内容脚本注入哪些站点。
Safari 似乎没有提供任何此类(细粒度)功能——它们只允许所有站点使用一个白名单/黑名单。
有没有办法做到这一点?如果没有,我如何有条件地加载 Javascript 文件?(记住我不能将它们添加到 DOM 中)。
我试过yepnope,但它附加到 DOM。
注意:我不想在实际文件中添加逻辑,因为它们本质上是跨扩展复制的库代码。
javascript - 从 chrome 扩展中注入函数/变量到页面
我正在编写一个 Chrome 扩展程序,为用户访问的某些页面添加功能。
为此,我需要注入一些页面需要能够调用的变量和函数。
这些变量/函数在内容脚本中生成。
但是,由于内容脚本在一个隐蔽的环境中运行,所以主机页面无法访问它。
根据这篇文章:
http ://code.google.com/chrome/extensions/content_scripts.html#host-page-communication
内容脚本和主机页面可以通过添加事件通过 DOM 进行通信。
但这是一种可怕的做事方式,我真的很想看到一些轻松注入方法/变量的方法。
有这种可能吗?
谢谢!
google-chrome-extension - Chrome 内容脚本未加载 JS
我正在尝试开发一个 Chrome 浏览器扩展,它在上下文菜单上做有趣的事情。问题是,我无法在 manifest.json content_scripts 中加载 JS 文件。
我没有收到错误,文件根本不加载。
脚本很好,如果我将它们放在我的背景页面中,它们会通过该背景页面很好地触发。缺点是它仅限于背景页面。
我尝试了所有形式的比赛,包括"http://\*/\*", "https://\*/\*", "\*://\*/\*"
我试过空格,没有空格。我在这里画一个空白。
任何帮助,将不胜感激。
对此我深表歉意。这是我用来测试扩展是否已加载的 javascript/Jquery 的副本。这只是一个简单的警报。
firefox-addon - 如何使用 contentscript in 访问附加到网页的变量 - contentscript using Add-on builder
我使用附加组件构建器创建了一个附加组件。pageMod
我在in 中附加了一个内容脚本main.js
我的内容脚本计算使用创建的动态标签的数量document.createElement()
。这是通过创建一个到 document.createElement() 的钩子并通过创建脚本标签将此函数添加到网页来完成的。我的代码如下。
内容脚本文件:
现在我得到了未捕获的异常:ReferenceError: count is not defined
.
我怎样才能访问这个count
变量?
javascript - 如何使用附加组件构建器通过附加组件跟踪页面的 HTTP 响应
我想创建一个附加组件来跟踪每个页面的 HTTP 响应。如何在我的 contentscriptFile 中包含此代码。除此之外,我还想跟踪元标记。这可以通过使用来完成,document.getElementsByTagName('meta');
但这给出了当前页面的mets标签,而不是打开的页面。我如何通过附加构建器实现此功能。
javascript - 使用 Chrome 的用户脚本劫持变量
我正在尝试使用用户脚本更改页面中的变量。我知道在源代码中有一个变量
从理论上讲,我应该能够像这样改变它:
但它不起作用。当我试图在不劫持的情况下向控制台发出警报或将变量记录到控制台时,我发现它是未定义的。
编辑:我正在使用 Chrome,如果它改变任何东西......
http://code.google.com/chrome/extensions/content_scripts.html说:
内容脚本在称为孤立世界的特殊环境中执行。他们可以访问被注入页面的 DOM,但不能访问页面创建的任何 JavaScript 变量或函数。它查看每个内容脚本,就好像它正在运行的页面上没有执行其他 JavaScript。
这是关于 Chrome 扩展的,但我想这与用户脚本也是一样的吗?
谢谢你,Rob W。所以需要它的人的工作代码:
google-chrome-extension - 将本地存储传递给 contenscript
我正在开发一个 chrome 扩展程序,我想知道,
有没有办法将整个本地存储从后台页面传递给contentscript
这样我就可以使用内容脚本中本地存储的所有键/值?
javascript - Javascript 在控制台中运行,但不在 contentscript 中
这是对此问题的后续问题。简短版本是:我正在尝试使用 javascript(Chrome 扩展程序)在关闭投票弹出窗口中的文本字段中插入一个欺骗链接(在 Stack Overflow 上关闭投票作为欺骗)。先前的答案让我更进一步,似乎是解决方案。但是,该问题的答案在控制台中有效,但由于某种原因在我的 chrome 扩展中不起作用。
问题是:当在 Stack Overflow 上打开投票关闭弹出窗口时,点击问题并单击欺骗原因。我可以在控制台中运行以下代码:
正如已经提到的,这很有效。该链接被插入到文本框中,并且 Stack Overflow JS 开始检索问题。但是,当我尝试在我的扩展程序中运行完全相同的代码时,它只能工作:
Kinda 的意思是:链接被插入到文本框中,但是用于检索问题的 Stack Overflow 脚本没有启动。所以我完全不知道可能出了什么问题。使用控制台与内容脚本时,某处可能有所不同?还要别的吗?
我在 github 上创建了一个非常简化的扩展版本下载。
google-chrome-extension - 升级或安装后重新注入 Chrome 扩展内容脚本
在安装或升级我正在使用的 Chrome 扩展程序后,不会重新注入内容脚本(在清单中指定),因此需要刷新页面才能使扩展程序正常工作。有没有办法强制再次注入脚本?
我相信我可以通过从清单中删除它们然后处理要在后台页面中注入哪些页面以编程方式再次注入它们,但这不是一个好的解决方案。
我不想自动刷新用户的标签,因为这可能会丢失他们的一些数据。安装或升级扩展程序时,Safari 会自动刷新所有页面。