在Chrome 45.0.2454.101中使用扩展访问跨域iframe的文档



我在Chrome扩展中使用内容脚本来访问跨域iframe中的文档,使用此代码:

document.querySelector('iframe').contentWindow.document

这个工作正常,直到我升级到最新版本的Google Chrome(45.0.2454.101 64位),它在访问iframe时报告以下安全错误:

Uncaught SecurityError: Blocked a frame with origin
"http://www.miercn.com" from accessing a frame with origin
"http://pos.baidu.com". Protocols, domains, and ports must match.

这个版本的Chrome有什么变化,如何解决这个问题?

我的Chrome版本:

Google Chrome 45.0.2454.101(齐刷刷)(64cm)3b3c00f2d95c45cca18ab944acced413fb759311-refs/branch-heads/2454@{#502}Mac OS X Blink 537.36(@3b3c00f2d95c45cca18ab944acced413fb759311Mozilla/5.0 (Macintosh;英特尔Mac OS X 10_9_4AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101Safari/537.36/Applications/Google铬。app/Contents/MacOS/Google Chrome -enable-avfoundation——enable-avfoundation——flag-switches-begin——flag-switches-end

您必须通过postMessage使用跨域消息传递。

为了让你在主页上的内容脚本与注入到iframe中的内容脚本进行通信,内容脚本应该注入到所有框架中:

"content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["content.js"],
    "all_frames": true
}],

相关内容

  • 没有找到相关文章

最新更新