IE onbeforeunload 不触发ExternalInterface 回调
我有一个在 html 容器中嵌入了 swfobject 的 Flash 影片。 通过 ExternalInterface
我注册了一个 Javascript 函数来触发对我的 Flash 应用程序的回调。
ExternalInterface.addCallback("notifyClose", notifyOnClose );
Javascript 函数被添加为事件侦听器以触发 onbeforeunload
。
<script language="JavaScript">
function getSWF(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1){
return window[movieName];
}else { return document[movieName];}
}
var bye = function() {
getSWF('flashContainer').notifyClose('> WE ARE CLOSING APP!');
//alert('WE ARE CLOSING APP!.');
};
var hola = function(){
getSWF('flashContainer').notifyClose('> WE ARE opening APP!');
alert('WE ARE opening APP!.');
};
if(window.addEventListener) {
window.addEventListener('load', hola,false);
window.addEventListener('beforeunload', bye, false);
} else if (window.attachEvent) {
window.attachEvent('onload', hola);
window.attachEvent('onbeforeunload', bye);
}
</script>
我已经在 Firefox 和 IE 中进行了测试。 Firefox 按预期工作,但在 IE 中却不行。 在 IE 中,我在 Flash 中收到 onload
消息通知,但没有收到 onbeforeunload
消息。
这是某种沙箱限制吗?只是糟糕的代码?
I have a Flash movie embedded with swfobject in a html container.
Through ExternalInterface
I have registered a Javascript function to fire callback to my flash app.
ExternalInterface.addCallback("notifyClose", notifyOnClose );
The Javascript function is added as an event listener to fire onbeforeunload
.
<script language="JavaScript">
function getSWF(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1){
return window[movieName];
}else { return document[movieName];}
}
var bye = function() {
getSWF('flashContainer').notifyClose('> WE ARE CLOSING APP!');
//alert('WE ARE CLOSING APP!.');
};
var hola = function(){
getSWF('flashContainer').notifyClose('> WE ARE opening APP!');
alert('WE ARE opening APP!.');
};
if(window.addEventListener) {
window.addEventListener('load', hola,false);
window.addEventListener('beforeunload', bye, false);
} else if (window.attachEvent) {
window.attachEvent('onload', hola);
window.attachEvent('onbeforeunload', bye);
}
</script>
I have tested in Firefox and IE. Firefox works as expected but not in IE.
In IE I get notified in Flash with the onload
message, but not onbeforeunload
.
Is it some kind of sandbox restriction? Just bad code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题是下面的 AttachEvent() 代码中的“on”。
对于您的事件侦听器代码,请尝试类似下面的代码,并查看以下链接以获取更多信息: http://bytes.com/topic/javascript/answers/147027-addeventlistener-function-ie
The problem is the "on" in your code below in the attachEvent().
Try something like the code below for your Event Listener code and see the following link for more information: http://bytes.com/topic/javascript/answers/147027-addeventlistener-function-ie