我正在发展政治与发展信息谷歌Chrome扩展,但我遇到了一个问题,我试图将JS脚本插入网页的一个div,结果什么都没有,绝对没有弹出
我知道我有合适的区域,因为如果我使用+ =“你好”;它正确显示文本,但当我实际执行+ =“”时,脚本似乎没有运行。对于他们所有的人来说,有什么建议吗?
我是怎么做的:
theinfotable.children [0] .innerHTML + =''; JavaScript(从Contentscripts.js文件中插入Google Chrome扩展程序)
我可以看到插入的代码,但脚本似乎仍然没有加载:(我知道这个代码在我有自己的页面而不是插入时有效) http://oi61.tinypic.com/2irkx9c.jpg
答案 0 :(得分:0)
您是否尝试创建新元素并附加它?而不是使用.innerHTML?
var injectable = document.createElement("script");
injectable.innerHTML = "console.log('Injected!');" // Your script here
// or injectable.src = "location" if you'd rather link
theinfotable.children[0].appendChild(injectable);
我不完全确定为什么会发生这种情况,如果我不得不猜测它是如何解析事物或安全措施的特质,但是appendChild应该做到这一点。基本上,根据我的理解,
之间的区别innerHTML + = :将HTML转换为字符串,然后添加到该字符串,并使用新内容重新解析该字符串
和...
appendChild :创建DOM节点,附加所述DOM节点,重新计算/刷新文档以进行样式重新计算。
在解析的某个地方,您的新脚本信息将被忽略。
答案 1 :(得分:0)
我发现了问题,页面阻止了我的脚本,右上角有“不安全”,有一个小盾牌图标,点击后我只需要显示“显示不安全的脚本”,然后弹出。< / p>
(如果有人想告诉我这样人们不必这样做,那就太棒了:D)我宁愿让人们弹出它而不是留下它来弹出