Почему мое расширение Chrome не может использовать HTML5 postMessage для связи с введенным мной фреймом?

Итак, у меня есть страница в DomainA, и, используя расширение Chrome, я' m вводит некоторый javascript, который вставляет iframe, указывающий на DomainB.

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

Я также вставляю некоторый javascript в DomainA, который пытается получить contentWindow iframe. Я хочу использовать на нем API postMessage HTML5.

$("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", "*");
});

Однако свойство contentWindow не определено. Почему это так и как это обойти? Если я помещу этот код расширения на веб-страницу, он сам по себе будет работать нормально.

Спасибо!

(простите за дрянной jquery / javascript)

7
задан Newtang 1 November 2010 в 21:08
поделиться