#jquery #postmessage
#jquery #postmessage
Вопрос:
Я пытаюсь изучить jQuery, я хочу создать простой клиент postMessage. Возможно ли обернуть это в jquery? Первое предупреждение работает, а второе — нет.
Я пытаюсь изменить этот код:http://austinchau.blogspot.com/2008/11/html5-cross-document-messaging.html
$(document).ready(function() {
$('#submit_button').click(function() {
var data = $('#message').val();
window.postMessage('1st' data);
alert(data);
});
var onmessage = function(e) {
var data = e.data;
var origin = e.origin;
document.getElementById('display').innerHTML = data;
alert('2nd' data);
};
if (typeof window.addEventListener != 'undefined') {
window.addEventListener('message', onmessage, false);
} else if (typeof window.attachEvent != 'undefined') {
window.attachEvent('onmessage', onmessage);
}
});
Редактировать: я знаю, что для этого доступно много плагинов, но я делаю это в процессе обучения.
Ответ №1:
postMessage
используется для обмена данными между различными страницами или окнами (или фреймами iframes). Вы отправляете сообщение в то же окно. Как вы видели, ничего не происходит.
Если вы вернетесь к исходному сообщению в блоге, автор создаст и отобразит два iframe, а затем разместит сообщения между ними.
Ответ №2:
Теперь требуется второй аргумент для postMessage. Ваш код может быть изменен на этот:
window.postMessage('1st' data, document.location);
Который работает, потому что вы публикуете в своем собственном окне. Чтобы отправить сообщение в другое окно, используйте это:
popup = window.open('http://example.com/');
popup.postMessage("Hi!", 'http://example.com/')
Дальнейшее чтение:
Удачи!