为什么我的chrome扩展程序不能使用HTML5 postMessage与我注入的框架进行通信?

New*_*ang 7 javascript google-chrome postmessage google-chrome-extension

所以,我在DomainA上有一个页面,并且,使用Chrome扩展程序,我正在注入一些插入指向DomainB的iframe的javascript.

$("body").append("<iframe id='someFrame' src='http://www.domainB.com' width='300' height='800'></iframe>");
Run Code Online (Sandbox Code Playgroud)

我还向DomainA注入了一些javascript,试图获取iframe的contentWindow.我想在它上面使用HTML5 postMessage api.

$("body").append("<a class='myLink'>Post Message</a>");
$(".myLink").click(function(){
    var frameElem = document.getElementById("someFrame"); 
    console.log("frameElem: " + frameElem); //succeeds

var contentWin = frameElem.contentWindow;
console.log("contentWin : " + contentWin); //undefined

//can't do this since contentWin is undefined: 
//contentWin.postMessage("data", "*");
});
Run Code Online (Sandbox Code Playgroud)

但是,contentWindow属性未定义.为什么会这样,我怎么能绕过它呢?如果我将此扩展代码放在网页中,它本身就可以正常工作.

谢谢!

(原谅蹩脚的jquery/javascript)

New*_*ang 10

我知道回答我自己的问题有点蹩脚,但我做了一些挖掘工作,发现Chromium上存在一个问题:http://code.google.com/p/chromium/issues/detail?id = 20773

我在chrome扩展程序组中找到了此链接:http://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/1d4b68f0971ef190/3446a7e82848351c?lnk=gst&q=contentWindow#3446a7e82848351c

  • 这不是蹩脚的.什么是蹩脚的*如果你找到它,就不会发布答案. (10认同)