注入按钮到网站(Chrome扩展内容脚本)
Inject button into site (Chrome Extension content script)
我试图使用Chrome的内容脚本将按钮注入页面,但按钮从未出现,并且我在控制台中没有错误。
我的manifest.json
文件:
{
"name": "Test",
"version": "0.0.1",
"manifest_version": 2,
"description": "Test",
"default_locale": "en",
"permissions": [
"<all_urls>"
],
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"src/inject/inject.js"
]
}
]
}
和我的inject.js
文件
document.addEventListener('DOMContentLoaded', function () {
var buttonOnSite = document.getElementById("buttonOnSite");
var button = document.createElement("button");
var text = document.createTextNode("test");
button.appendChild(text);
buttonOnSite.appendChild(button);
});
我从上面的代码中所期望的是,当我去到一个id为buttonOnSite
的按钮存在的网站时,一个新的按钮,在它之后创建了文本test
。
但是当我带着按钮去这个网站时什么都没有发生!肯定有一个按钮的id buttonOnSite
(我已经改变了这里的id,因为它是一个长id)。
我在控制台中没有得到错误消息,那么出了什么问题?可能很明显,但我就是看不出来。任何帮助都是感激的!
这是您需要的代码:
var buttonOnSite = document.getElementById("buttonOnSite"),
parent = buttonOnSite.parentElement,
next = buttonOnSite.nextSibling,
button = document.createElement("button"),
text = document.createTextNode("test");
button.appendChild(text);
if (next) parent.insertBefore(button, next);
else parent.appendChild(button);
默认情况下,内容脚本在加载DOM后运行。这意味着在事件触发之后添加事件侦听器,因此侦听器永远不会听到它。删除javascript的第一行和最后一行
相关文章:
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 是否可以通过Chrome扩展内容脚本打开Chrome外部协议请求
- Google Chrome扩展程序可以检测所有脚本何时加载完成吗
- 加载Chrome扩展中的脚本错误
- chrome扩展-内容脚本随需应变
- Safari扩展中的注入脚本;不要在Youtube上开火
- Chrome扩展:加载窗口后执行脚本
- 如何动态添加或删除Chrome扩展、内容脚本、javascript文件
- 内容安全策略指令:;脚本src'self'blob:文件系统:chrome扩展资源:“;获取是否时
- 带有嵌入脚本的SVG可扩展到浏览器的可用空间
- FireFox扩展对TinyMCE编辑器执行脚本注入
- Firefox扩展开发:如何在内容脚本中创建一个全局函数,以便其他加载的脚本文件可以访问它
- 如何从 Chrome 扩展程序中的内容脚本中获取变量
- Chrome扩展程序,如何将消息从面板发送到内容脚本
- 歌剧扩展脚本和它们之间的通信
- 在chrome扩展中获取从后台页面到内容脚本的配置
- 阅读第'页;s从chrome扩展中链接的脚本
- 使用咖啡脚本扩展非本地类
- Chrome 扩展程序:如何让我的内容脚本扩展程序显示在选定的网站上
- 用Chrome内容脚本扩展替换网站中的文本