У меня есть Flash-фильм, встроенный в swfobject в контейнер html. Через ExternalInterface Я зарегистрировал функцию javascript, чтобы активировать обратный вызов для моего флеш-приложения.IE onbeforeunload не запускает ExtenralInterface обратный вызов
ExternalInterface.addCallback("notifyClose", notifyOnClose);
Функция javascript добавляется как событие listerner для запуска 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.
Это какой-то король песочницы? Просто плохой код?
Кроме того, если я заменить вызов ExternalInterface в функции свидания с вызовом AJAX , он тоже не работает. – goliatone