2015-06-05 41 views
0

我在发展政治&信息Google Chrome扩展程序但我遇到了一个问题,我试图插入一个JS脚本到网页的一个div中,结果没有什么,绝对没有弹出从Contentscript.js插入代码(Chrome扩展程序)

我知道我有正确的地区,因为如果我使用+ =“你好”;它正确显示那里的文本,但是当我实际上做了+ =“”这个脚本似乎没有运行。对于他们所有的人来说,有什么建议吗?

如何我这样做:

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

我可以看到代码已插入,但脚本仍然无法加载:(我知道这段代码在我有自己的页面时起作用而不是插入) http://oi61.tinypic.com/2irkx9c.jpg

回答

0

我想出了问题,该页面阻止我的脚本作为“不安全”在右上角有一个小盾牌图标,点击它后,我只需要把“显示不安全的脚本”,它弹出。如果有人想告诉我,所以人们不必这样做,这将是伟大的:D)我宁愿人们只是弹出它,而不必留下来弹出

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节点,重新计算/刷新文档以进行样式重新计算。

而在解析的某个地方,您的新脚本信息将被忽略。

+0

我试过了,但它似乎仍然没有工作。 var injectable = document.createElement(“script”); injectable.injectable =“”//您的脚本 //或injectable.src = “位置”,如果你想链接 theinfotable.children [0] .appendChild(injectable); –

+0

我用''代替了“”,它不再发出错误,但广告仍然没有弹出 –

+0

脚本: