Подтвердить что ты не робот

Любой хороший отладчик для HTML5 Javascript postMessage API?

Есть ли хороший инструмент там, который позволяет разработчикам правильно отлаживать сообщения, отправленные между окнами с помощью postMessage?

Или, может быть, плагин для Firebug?

4b9b3361

Ответ 1

Firebug (начиная с 1.11 beta 1) поддерживает это с помощью monitorEvents(). Вы можете сделать что-то вроде этого:

$("iframe").each(function(i, e) {
    console.log("Monitoring messages sent to: iframe(" + i + ")#" + $(this).attr("id"));
    monitorEvents(this.contentWindow, "message"); 

    // Send a test message to this iframe
    this.contentWindow.postMessage("Hi iframe - " + i, "*"); 
});

console.log("Monitoring messages sent to window");
monitorEvents(window, "message"); 
// Send a test message to the window
window.postMessage("Hi window", "*"); 

(@Pierre: спасибо за упоминание, что запрос функции)

РЕДАКТИРОВАТЬ: Также работает в Chrome, хотя, когда я пробовал этот код, я обнаружил ошибку безопасности, Значения document.domain не совпадают, поэтому поведение этих двух реализаций может несколько отличаться.

ОБНОВЛЕНИЕ: У меня отправлен запрос функции в команду Chrome с просьбой сообщить о событиях postMessage на временной шкале. Кроме того, я нашел расширение называемое JScript Tricks, которое может вставлять произвольный код JavaScript на страницу при загрузке. Вы можете добавить к нему следующий код для отслеживания событий после загрузки страницы. Он работает очень хорошо, хотя может пропустить события, которые происходят немедленно (например, перед загрузкой, если это возможно).

(function($) {
    var $window = $(window);
    $window.add("iframe").on("message", function(e) {
        console.log("Received messsage from " + e.originalEvent.origin + ", data = " + e.originalEvent.data);
    });
})(jQuery);