Обтекание postMessage в jQuery - PullRequest
1 голос
/ 10 июня 2011

Я пытаюсь изучить 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);
    }
});

Редактировать: я знаю, что есть много плагинов доступно для этого, но я делаю это как учебный процесс.

Ответы [ 2 ]

0 голосов
/ 18 июня 2011

Теперь необходим второй аргумент для postMessage.Ваш код может быть изменен на это:

   window.postMessage('1st' + data, document.location);

, который работает, потому что вы публикуете в своем собственном окне.Чтобы опубликовать в другом окне, используйте это:

   popup = window.open('http://example.com/');
   popup.postMessage("Hi!", 'http://example.com/')

Дополнительная литература:

Удачи!

0 голосов
/ 10 июня 2011

postMessage используется для связи между различными страницами или окнами (или фреймами). Вы публикуете сообщение в том же окне. Как вы видели, ничего не происходит.

Если вы вернетесь к исходному сообщению в блоге, автор создает и отображает два фрейма, а затем публикует сообщения между ними.

...