我在 html 容器中嵌入了带有 swfobject 的 Flash 电影。通过ExternalInterface
我已经注册了一个 Javascript 函数来触发我的 Flash 应用程序的回调。
ExternalInterface.addCallback("notifyClose", notifyOnClose );
Javascript 函数作为事件侦听器添加到 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>
我已经在 Firefox 和 IE 中进行了测试。Firefox 按预期工作,但不能在 IE 中工作。在 IE 中,我在 Flash 中收到onload
消息通知,但不是onbeforeunload
.
这是某种沙盒限制吗?只是糟糕的代码?