0

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

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

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

4

2 回答 2

1

我不是 JS 专家,也不是粉丝,但这是我遇到类似问题的经验:

我们遇到了类似的问题:我们在对象上使用“postMessage”来与加载在 chrome 浏览器中的本机库进行通信。在某些时候,“postMessage”在通信正常后未定义。

事实证明,它是在我们切换包含我们在其上调用“postMessage”的 html 对象的 div 的可见性之后出现的。

我们有类似的东西:

在我们的例子中,我们在“embed”对象上调用“postMessage”(这是与本机层进行通信的方式)。

所以,如果是类似的场景,也许你已经修改了“window”对象的一些属性,这反过来又使“postMessage”函数未定义。这只是一个提示。

于 2014-05-13T09:26:32.033 回答
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);
    }
于 2014-11-04T02:51:40.817 回答