使用typeof窗口的任何问题.postMessage === undefined
Any gotchas using typeof window.postMessage === undefined?
我有一个网页,将不能正常工作,如果postMessage不可用。我想用一个简单的:
if (window.postMessage === undefined) {
//alert the user
}
这种方法是否存在不可预见的问题?
我不是JS专家,也不是粉丝,但这里是我遇到类似问题的经验:
我们有一个类似的问题:我们在一个对象上使用"postMessage"来与chrome浏览器中加载的本地库进行通信。在某些情况下,"postMessage"在通信正常工作后未定义。
原来它是在我们切换了div的可见性之后出现的,div包含了我们调用"postMessage"的html对象。
我们有这样的东西:
在我们的例子中,我们在"embed"对象上调用"postMessage"(这就是与本地层通信的方式)。
所以,如果是类似的场景,也许你修改了"window"对象的一些属性,从而使"postMessage"函数未定义。这只是个提示
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);
}
相关文章:
- 如何检查消息(postMessage)来自哪个跨域iframe
- window.postMessage与ajax的优缺点
- Web Worker postMessage({})何时返回给调用者
- 无法使用Google代码在“DOMWindow”上执行“postMessage”
- 通过postMessage()进行通信
- 使用postMessage指定window.frame
- 如何:´postMessage´它能发送两条信息吗
- Javascript window.postmessage()帮助-don'我不了解用法
- 如何访问postMessage中发送的数据
- 启用帧间通信的postMessage方法的最大大小是多少
- 安全使用window.postMessage,是“;if(event.source!==window){return;}
- 如何“;postMessage”;当在IE9对象元素中查看时,从pdf中托管
- safari blocks event.source.postMessage
- 我可以使用window.postMessage方法从iframe中的网页通信到包括该iframe的UIWebView吗
- self.postMessage和onMessage don'不适用于上下文项
- Parent-Iframe postMessage communication
- jQuery $.Deferred with window.top.postMessage()
- postMessage() 生成错误“未定义不是函数”
- 使 postMessage() 和 addEventListener() 与 IE8 兼容
- postMessage - 多个 postMessage 事件/函数/回调