1

我一直在寻找2天内如何制作一个Chrome扩展程序,它通过背景页面导航到远程页面(例如“http://hotmail.com” ),并使用事件调度器去某处,检查邮件,检查论坛上的帖子等。Chrome扩展程序:像邮件检查器这样的背景浏览页面

我已经看过谷歌邮件检查器扩展,我看到扩展只是使用XMLHttpRequest()和评估结果。但结果是只包含诸如“邮件:”“主题”“日期:”“3”等信息的准备xml文档。因此,在任何情况下,它都不会评估html页面,发送事件并转到另一页。

所以我想知道是否有可能,我试图通过document.createElement()和document.body.appendChild()包括一个iframe,但我有一个错误消息: “拒绝显示文档,因为X-Frame禁止显示 - 选项“。 而我在清单文件中加入了“permissions”:[“:///*”]。

回答

1

X-Frame-Options是由服务器发送的HTTP标头,指定页面是否应显示在iframe中。 Chrome旨在服从X-Frame-Options的限制,并且扩展无法放松此限制。

也许你可以使用跨域Ajax请求来获取信息。这只会为您提供页面的原始代码,因此如果页面中包含iframe或使用脚本动态构建它自己,它不会有帮助。但是,我怀疑大多数邮件服务都有一个“简单的HTML”视图,你可以刮(假设你正在建立一个邮件检查器)。

查看相关问题Overcoming "Display forbidden by X-Frame-Options"

+0

谢谢。那么,没有办法将ajax请求收到的文本评估为DOM? (我试过DOMParser,我得到了解析器错误:]) – TinyMan 2012-04-19 20:03:20

+0

DOMParser似乎不适用于HTML(除Firefox版外)。你可以做的是用'var newPage = document.createElement(“html”)'创建一个新元素,然后用'newPage.innerHTML = ...'删除Ajax结果。感谢'innerHTML'的自动分析,您将拥有完全可访问的DOM页面。 – apsillers 2012-04-20 15:29:59

+0

请记住,您可能需要清除doctype标头并打开/关闭''标签,以使其能够跨浏览器工作(否则,您可能会立即在外部块内获得您Ajax'd页面的块。我的测试表明,最新的FF和Chrome会为你处理,但我不能说IE或任何其他。 – apsillers 2012-04-20 15:34:40

相关问题