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

Fra*_*yer 3 iframe google-chrome-extension

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

yon*_*ran 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>
Run Code Online (Sandbox Code Playgroud)

有错误:"不安全的JavaScript尝试使用URL镀铬扩展程序来访问具有URL http://www.google.com/的框架://elbpnmnjddamdmjmdnmhankaimaldhmf/background.html.域,协议和端口必须匹配."

  • @aaronfrost,是的,您可以请求权限,例如"http://www.google.com/*",但目前它只适用于跨源XMLHttpRequests,注入内容脚本和读取cookie.它不适用于在后台页面中读取iframe.也许您可以提交功能请求.或许它与http://crbug.com/20773的问题相同 (2认同)