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

Accessing the document of a cross domain iframe using an extension in Chrome 45.0.2454.101

我在 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 (正式版本) (64 位) 修订版本 3b3c00f2d95c45cca18ab944acced413fb759311-refs/branch-heads/2454@{#502} 操作系统 Mac OS X Blink 537.36 (@3b3c00f2d95c45cca18ab944acced413fb759311) JavaScript V8 4.5.103.35 Flash 19.0.0.185 用户代理 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 命令行 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --enable-avfoundation --enable-avfoundation --flag-switches-begin --flag-switches-end

您将不得不使用 cross-domain messaging via postMessage

为了让主页上的内容脚本与注入到 iframe 中的内容脚本进行通信,内容脚本应注入 all frames:

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