我有一個Flash電影嵌入在一個HTML容器swfobject。 通過ExternalInterface我已經註冊了一個JavaScript函數來觸發我的Flash應用程序的回調。IE onbeforeunload不發射ExtenralInterface回調
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>
我已經在FF和IE中測試過。 Firefox按預期工作,但不在IE中。 在IE中,我在Flash中收到onload消息通知,但不是onbeforeunload。
這是沙箱限制的一些王嗎?只是不好的代碼?
另外,如果我有一個Ajax調用替換再見功能ExternalInterface調用,它也不起作用。 – goliatone 2010-02-13 11:07:15