如何使用 Chrome 扩展程序向网页注入按钮
How to inject a button to a webpage with Chrome Extension
我正在使用content scripts
,我想向网页注入一个按钮。
这是我manifest.json
:
{
"manifest_version": 2,
"name": "my extension",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab"
],
"content_scripts": [
{
"matches": ["http://127.0.0.1:8000/*"],
"js": ["script.js"],
"run_at": "document_end"
}
]
}
这是popup.html
:
<html>
<body>
<input type="button" id="button" style="display:none;">
</body>
</html>
script.js
:
document.body.style.backgroundColor = "yellow";
var button = document.getElementById("button");
button.style.visibility = "visible";
转到http://127.0.0.1:8000
时,我看到背景变为黄色,但是它找不到按钮,因为它不是我的本地服务器提供的网页的一部分。它显示此错误:
Uncaught TypeError: Cannot read property 'style' of null
我应该怎么做才能在http://127.0.0.1:8000
的内容顶部注入一个按钮(假设我不知道它的内容)?
要插入按钮,只需在内容脚本中创建它并插入它,您不需要(不应该)在popup.html
中声明它
manifest.json
{
"manifest_version": 2,
"name": "my extension",
"content_scripts": [
{
"matches": ["http://127.0.0.1:5000/*"],
"js": ["script.js"]
}
]
}
脚本.js
document.body.style.backgroundColor = "yellow";
var button = document.createElement("button");
document.body.appendChild(button);
您应该在content_scripts
属性中添加"run_at": "document_end"
在document_end
中,脚本文件将在DOM完成后注入。这样,document
将能够找到您丢失的按钮:)
"content_scripts": [
{
"matches": ["http://127.0.0.1:5000/*"],
"js": ["script.js"],
"run_at": "document_end"
}
]
相关文章:
- 避免在javascript中的jquery被注入到某个网页的情况下发生冲突
- 如何使用 Chrome 扩展程序向网页注入按钮
- SWF 如何将内容注入网页
- 将本地.js文件注入网页
- 如何防止注入的 JavaScript 文件参考代码在我的网页中运行
- 将javaScript注入网页以禁用texbox
- Safari扩展注入了脚本/网页交互
- 如何将jquery注入任何网页
- 将css注入到现有的网页中
- 使用JavaScript将可重复使用的内容注入网页
- 可以't使用firefox扩展将本地css文件注入网页
- 如何自动将JavaScript注入网页,以便从开发人员控制台访问其变量
- 如何注入javascript到一个网页加载在UIWebView
- 硒2注入CSS到当前显示的网页
- 从另一个域名加载一个网页并注入javascript
- 在Safari扩展中使用javascript注入与网页进行交互
- 如何通过Chrome扩展注入CSS到网页
- 禁用用户通过浏览器F12工具向网页注入Javascript
- 用Python将Javascript注入网页
- 如何在运行时使用javascript为网页注入控件