Я пытался создать ложную запись в браузере (то есть browserManager.setFragment ("bb = 1")), а затем добавить событие BrowserChangeEvent.BROWSER_URL_CHANGE в менеджер браузера, чтобы перехватить его, прежде чем оно полностью покинет приложение,
После этого мое всплывающее окно позволит пользователю выйти из приложения с помощью ExternalInterface.call ("history.go", - 1);если все в порядке.
Моя проблема сейчас заключается в том, что это прекрасно работает во всех браузерах, кроме IE (особенно 8).Любая идея, что я могу сделать, чтобы заставить это работать в IE?
Вот моя реализация:
init():{
browserManager = BrowserManager.getInstance();
var historyLen:String = ExternalInterface.call("history.length.toString");
if(historyLen != "1")
browserManager.setFragment("bb=1");
browserManager.addEventListener(
BrowserChangeEvent.BROWSER_URL_CHANGE,
urlChange
);
}
private function urlChange(e:BrowserChangeEvent = null):void
{
var o:Object = URLUtil.stringToObject(browserManager.fragment);
if(o.hasOwnProperty('bb') && o.bb == 1){
bbInit = true;
}
if(bbInit && !o.hasOwnProperty('bb'))
Alert.show("Are you sure you want to exit the app?","Exit", "", Alert.OK|Alert.CANCEL,this,bbClose);
}
private function bbClose(e:CloseEvent):void
{
if (e.detail == Alert.OK) {
ExternalInterface.call("history.go",-1);
} else {
browserManager.setFragment("bb=1");
}
}
Кстати, предупреждение не всплывает в IE, поэтому я уверен, что этолибо проблема с добавлением ложной истории, либо с функцией urlChange.