Javascript Chrome扩展:在iframe中加载外部页面并读取innerHTML
我找到了一些例子并拼凑了一个扩展。但我一直没能成功。总是出现一些错误,现在我放弃了 有人能给我一个完整的例子说明如何做到这一点(如果可能的话) 我想加载iframe的原因是,如果我使用XMLHttpRequest来读取页面,我将无法获得用Javascript生成的HTML 请参阅下面的代码 manifest.json:Javascript Chrome扩展:在iframe中加载外部页面并读取innerHTML,javascript,iframe,google-chrome-extension,Javascript,Iframe,Google Chrome Extension,我找到了一些例子并拼凑了一个扩展。但我一直没能成功。总是出现一些错误,现在我放弃了 有人能给我一个完整的例子说明如何做到这一点(如果可能的话) 我想加载iframe的原因是,如果我使用XMLHttpRequest来读取页面,我将无法获得用Javascript生成的HTML 请参阅下面的代码 manifest.json: { "manifest_version": 2, "name": "Example ...", "description": "Will let you get b
{
"manifest_version": 2,
"name": "Example ...",
"description": "Will let you get browser notifications from ...",
"version": "1.0",
"content_security_policy": "script-src http://example.com 'self' ; object-src 'self'",
"browser_action": {
"default_icon": "icon.png"
},
"permissions": [
"http://example.com/*",
"notifications",
"cookies",
],
"background": {
"page": "background.html"
}
}
background.html:
<html>
<head>
</head>
<body>
<iframe src="http://www.example.com/"></iframe>
</body>
</html>
我尝试过通过JavaScript创建iframe,但没有任何区别。等待加载iframe,然后使用jQuery获取其内容:
$('iframe').load(function() {
$(this).contents().find('html').html();
});
什么是
XmlHttpConnection
?写一个包含完整扩展名的答案会做很多脏活。我在做这类事情时有很多经验,所以如果你发布了一些不起作用的代码,我很乐意指出解决方案@奥卡曼:我会用一些代码更新我的问题。抱歉,如果这需要大量工作,我看到的示例没有那么多代码。因此我认为有人有一个简单的解决方案不会跨域工作(而且它保证是跨域的)@Xan它从Chrome扩展运行,它肯定可以跨域工作(你控制响应头,你可以允许)。不,虽然您可以跨域发送请求,但在加载页面时不会免除您的正常web安全性。Chrome将拒绝读取.contents()
。