在Chrome扩展程序中创建隐藏的iframe

时间:2011-04-19 23:59:23

标签: iframe google-chrome-extension

是否可以在google-chrome扩展程序的background.html页面上创建iframe并让它向网站发出请求?我不确定扩展是如何工作的。 chrome会自动忽略所有显示标签还是会无形地运行它?

3 个答案:

答案 0 :(得分:5)

它会加载iframe,但我认为由于同源限制而无法读取iframe中的任何内容。例如,此后台脚本失败:

<body>
<script>
var iframe = document.body.appendChild(document.createElement('iframe'));
iframe.src = 'http://www.google.com';
iframe.onload = function() {
  console.log(iframe.contentDocument.innerHTML);
};
</script>

有错误:“不安全的JavaScript尝试使用URL chrome-extension://elbpnmnjddamdmjmdnmhankaimaldhmf/background.html从框架访问带有网址http://www.google.com/的框架。域,协议和端口必须匹配。”

答案 1 :(得分:2)

我的理解是,永远不会显示扩展的后台页面,但它应该按预期“运行”(例如src标记的img属性将导致获取图像数据) 。我是实施扩展的新手,但the architecture overview似乎暗示了这一点,我见过的样本也是如此。

您可以点击扩展程序控制面板中指向background.html的链接,然后检查来源/ dom /等。

答案 2 :(得分:0)

自我测试后:显然google-chrome会运行iframe。它只是不会显示它们。