2016-12-06 3 views
1

У меня возникла проблема, связанная с моим родительским окном дочернему iFrame. Но с другой стороны все работает отлично. Вот как я получаю CHiL объект Iframe для того, чтобы поджечь PostMessage функции:Проблема с сообщением postMessage от родителя к дочернему iFrame

var iFrame = document.getElementById('Frame').contentWindow; 

Когда я печатаю его Int он утешит, я получаю следующее:

Window {parent: Window, opener: null, top: Window, length: 0, frames: Window…} 

Когда Я перехожу к функции postMessage следующим образом:

iFrame.postMessage("message", "http://contoso.com"); 

Это показывает мне erro r при загрузке страницы: iFrame.postMessage не является функцией. Когда я исполняю PostMessage в консоли, я получаю неопределенными

Что я делаю неправильно?

+0

Вы по-прежнему должны иметь контроль над обоими сайтами. У вас есть 'contoso.com'? – zer00ne

+0

Вам нужно настроить e.origin на 'contoso.com', вы уверены, что можете редактировать этот сайт? В прошлый раз, когда я проверил, MS все еще принадлежала ему. – zer00ne

+0

Я заменил свой сайт contoso.com только для публикации. В слушателе событий в дочернем iFrame e.origin устанавливается правильно. Я добавил журнал непосредственно перед тем, как манипулировать объектом события, но он никогда не доходит до этого. –

ответ

1

Ниже также работает код.

$('#id')[0].contentWindow.postMessage("hello world",targetOrigin);

Существует разница между селектором и JQuery document.getElementById.

Документ.getElementByID возвращает объект HTML DOM.
jQuery selector возвращает объект jQuery.

Дополнительную информацию см. Ниже. document.getElementById vs jQuery $()

Смежные вопросы