Есть ли хороший инструмент там, который позволяет разработчикам правильно отлаживать сообщения, отправленные между окнами с помощью postMessage?
Или, может быть, плагин для Firebug?
Есть ли хороший инструмент там, который позволяет разработчикам правильно отлаживать сообщения, отправленные между окнами с помощью postMessage?
Или, может быть, плагин для Firebug?
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);
Вышел firebug функция-запрос.
Вот расширение Chrome для этого: https://chrome.google.com/webstore/detail/postmessage-debugger/ibnkhbkkelpcgofjlfnlanbigclpldad
Репо для исходного кода: https://github.com/willeeklund/chrome-postMessage-debugger