如果postMessage不可用,我的网页将无法正常运行。我想用一个简单的:
if (window.postMessage === undefined) {
//alert the user
}
这种方法有什么不可预见的问题吗?
答案 0 :(得分:1)
我不是JS专家,也不是粉丝,而是我遇到类似问题的经历:
我们遇到了类似的问题:我们在对象上使用“postMessage”与chrome浏览器中加载的本机库进行通信。在某些时候,“postMessage”在通信工作正常后未定义。
事实证明,在我们切换包含我们称之为“postMessage”的html对象的div的可见性之后,它就出现了。
我们有类似的东西:
在我们的例子中,我们在“embed”对象上调用了“postMessage”(这就是如何与本机层进行通信)。
所以,如果它是一个类似的场景,也许你已经修改了“window”对象的一些属性,这反过来使得“postMessage”函数未定义。这只是一个暗示。
答案 1 :(得分:0)
function handlingMsg(e){
var heightIn = (typeof e.data === "object") ? e.data['height'] : e.data;
$("#zbFrame").attr("height",Number(heightIn));
}
//iframe 적용
// <= ie8
if (!window.addEventListener) {
window.attachEvent("onmessage", handlingMsg);
}else{ // > ie8
window.addEventListener('message', handlingMsg, false);
}