我有一些 html5 postMessage 代码:
window.addEventListener("message", FA.recieveMessage, false);
该侦听器调用此函数:
FA.recieveMessage = function(e){
if (e.data == "closeFA"){
console.log("Type of data: "+e.data);
}
};
现在在 ie8 上这段代码不起作用,因为它不支持 html5 消息传递。所以我想是否有办法通过发送jsonp类型的ajax请求来调用该函数!?
有没有办法用 jsonp 模拟消息传递?
如果我确实将 jsonp 请求发送到另一台服务器,这是否意味着它是一个新请求并且它不会知道现在触发的所有事件?
更新
好的,这就是我想要的。我想关闭一个 iframe。所以在一页上,我有这个javascript:
$.ajax({url: 'http://api.apps.com/html/'+FA.appID,
data: {},
dataType: 'jsonp',
timeout: 10000,
jsonp: "closeIFrame"
});
这应该指示apps/html 页面调用closeIframe 函数是吗?
function closeIFrame() {
jQuery("#fa-iframe-container").fadeOut(300, function(){ jQuery(this).remove(); });
FA.bannerShown = false;
}