Quindi, ho una pagina su DomainA e, usando un'estensione di Chrome, sto inserendo alcuni javascript che inseriscono iframe che punta a DomainB.Perché la mia estensione chrome non può utilizzare postMessage HTML5 per comunicare con un frame che viene iniettato?
$("body").append("<iframe id='someFrame' src='http://www.domainB.com' width='300' height='800'></iframe>");
Ho anche iniettare un po 'javascript in DomainA che tenta di ottenere contentWindow del iframe. Voglio usare l'api postMessage HTML5 su di esso.
$("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", "*");
});
Tuttavia, la proprietà contentWindow non è definita. Perché è così, e come posso aggirarlo? Se inserisco questo codice di estensione in una pagina web funzionerà da solo.
Grazie!
(pardon il schifoso jquery/javascript)
Stai solo cercando di fare una richiesta di dominio croce? O hai bisogno di quegli iframe? – serg
Ho bisogno dell'iframe per mostrare il contenuto su un altro server. – Newtang