由页面上的内容脚本创建的元素,导致Gmail,Facebook,stackoverflow等问题
Element created by Content script on page creating issue with Gmail,Facebook,stackoverflow etc
我正在开发一个Chrome扩展程序,我的要求是为每个打开的选项卡在页面上创建元素(按钮(,并希望在单击按钮时显示简单的警报消息。它适用于所有人,但它总是在Gmail,Facebook和Stackoverflow上产生问题。请帮助我解决此问题。
我有在我的内容脚本中向网页添加按钮的代码。
manifest.json
....
....
"content_scripts": [
{
"matches":["http://*/*", "https://*/*"],
"css": [ "style.css" ],
"js":["contentScript.js"],
"all_frames": false,
"run_at": "document_idle"
}
]
....
....
内容脚本.js
....
....
function addButton() {
document.body.innerHTML += '<button id="my_button" class="buttonCss">Show Button</button>';
var button = document.getElementById("my_button");
button.addEventListener("click", function () {
alert("hello");
}, false);
} ..... ..... ....
我认为一些Gmail安全功能正在造成问题。
document.body.innerHTML += /* ... */
我认为这是你的问题。它迫使Chrome重新创建body
的整个DOM,丢失附加的事件/数据。
正确的方法是构造和附加一个 DOM 节点:
var button = document.createElement("button");
button.id = "my_button";
button.className = "buttonCss";
button.textContent = "Show Button";
document.body.appendChild(button);
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Ajax请求文档就绪会导致jquery加载缓慢
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 由于iframe导致的问题
- 刷新导致我的帖子“;张贴“;再一次
- 处理JSON字符串会导致JavaScript错误
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- Grunt构建导致Angular应用程序在dist上崩溃
- Snap()方法导致Uncaught TypeError
- jquery Onclick函数带有导致双击的回调排序函数
- 为什么要返回'这'在导致循环的JavaScript原型中
- Typescript导入导出的类会发出require(..),从而导致浏览器错误
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- 什么's导致了512字节的限制-openkeyval或其他什么
- 重复应用 d3 转换导致的内存泄漏
- 当浏览器控制台未打开时,为什么要求会导致Internet Explorer 9超时
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何使用Gmail运行.js文件
- 由页面上的内容脚本创建的元素,导致Gmail,Facebook,stackoverflow等问题