从Contentscript.js插入代码(Chrome扩展程序)

时间:2015-06-05 04:05:42

标签: javascript php html google-chrome

我正在发展政治与发展信息谷歌Chrome扩展,但我遇到了一个问题,我试图将JS脚本插入网页的一个div,结果什么都没有,绝对没有弹出

我知道我有合适的区域,因为如果我使用+ =“你好”;它正确显示文本,但当我实际执行+ =“”时,脚本似乎没有运行。对于他们所有的人来说,有什么建议吗?

我是怎么做的:

theinfotable.children [0] .innerHTML + =''; JavaScript(从Contentscripts.js文件中插入Google Chrome扩展程序)

我可以看到插入的代码,但脚本似乎仍然没有加载:(我知道这个代码在我有自己的页面而不是插入时有效) http://oi61.tinypic.com/2irkx9c.jpg

2 个答案:

答案 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)我宁愿让人们弹出它而不是留下它来弹出