我有一些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;
}
答案 0 :(得分:1)
从技术上讲,您可以使用jsonp模拟消息传递,每次调用都将是一个新请求,但会话将可用,因此jsonp服务可以是状态感知。
的更新强> 的
根据我的经验,您不会在文件中调用函数,而是每个文件代表一个函数,因此您可能拥有以下服务: