任何使用typeof window.postMessage === undefined?

时间:2013-05-22 16:34:54

标签: javascript postmessage

如果postMessage不可用,我的网页将无法正常运行。我想用一个简单的:

if (window.postMessage === undefined) {
  //alert the user
}

这种方法有什么不可预见的问题吗?

2 个答案:

答案 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);
    }