我从iframe到父窗口有3个postmessage调用。这三个在firefox中反向执行。有解决方法吗?
答案 0 :(得分:0)
是的,如果你在Firefox中一次执行JavaScript时使用多个postMessage
,那么在执行完成之前浏览器不会处理它们,据我所知,Firefox总是处理这些后进先出而不是先进先出。
setTimeout
是订购postMessage
电话的一种方式,例如使用postMessage
包装器:
function postMessage(otherWindow, message, targetOrigin, transfer) {
setTimeout(
function() {
otherWindow.postMessage(message, targetOrigin, transfer);
},
0
);
}
这会将所有postMessage
调用推迟到后续执行的JavaScript中,浏览器将按顺序执行。