HTML コンテナに swfobject を埋め込んだ Flash ムービーがあります。フラッシュアプExternalInterface
リへのコールバックを起動するJavascript関数を登録しました。
ExternalInterface.addCallback("notifyClose", notifyOnClose );
fire へのイベントリスナーとして 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 では、onload
メッセージで Flash に通知されますが、onbeforeunload
.
ある種のサンドボックス制限ですか? ただの悪いコード?