Javascript Flex ExternalInterface在Safari中不启动(在其他任何地方都可以使用!)
我知道在让JavaScript/Flex ExternalInterface更好地发挥作用方面还有其他问题,但我认为这是一个奇怪的问题。除了Mac上的Safari之外,它在所有浏览器中都能完美工作。Chrome、IE、Firefox——一切正常,但是Safari,不,它只是不会启动。我在下面复制了我的代码,有人知道为什么它在Safari pls中不起作用吗 Safari中会出现“确定”对话框窗口,但Flex应用程序中的方法不会被调用 干杯 亚历克斯 弹性代码:Javascript Flex ExternalInterface在Safari中不启动(在其他任何地方都可以使用!),javascript,apache-flex,safari,callback,shutdown-hook,Javascript,Apache Flex,Safari,Callback,Shutdown Hook,我知道在让JavaScript/Flex ExternalInterface更好地发挥作用方面还有其他问题,但我认为这是一个奇怪的问题。除了Mac上的Safari之外,它在所有浏览器中都能完美工作。Chrome、IE、Firefox——一切正常,但是Safari,不,它只是不会启动。我在下面复制了我的代码,有人知道为什么它在Safari pls中不起作用吗 Safari中会出现“确定”对话框窗口,但Flex应用程序中的方法不会被调用 干杯 亚历克斯 弹性代码: if(Extern
if(ExternalInterface.available){
ExternalInterface.addCallback("flexShutdownHandler",flexShutdownHandler);
fnMyLogger("External interface available - setting shutdownhook");
}else{
fnMyLogger("External interface *NOT* available");
}
private function flexShutdownHandler():void{
fnMyLogger("*****************");
fnMyLogger("** Logging out **");
fnMyLogger("*****************");
// other code as well here where I
// can tell doesn't get called ....
}
JavaScript代码:
<script language="JavaScript" type="text/javascript">
function thisFlexApp(flexName) {
if (navigator.appName.indexOf("Microsoft") != -1 || navigator.appName.indexOf("MSIE") != -1) {
return window[flexName];
} else {
return document.getElementById(flexName);
}
}
function shutdownHook(){
window.alert ("are you sure ?");
thisFlexApp("MyFlexApp").flexShutdownHandler();
}
//Set up notification for flex app when page unloads
window.onbeforeunload = shutdownHook;
</script>
通常,当ExternalInterface中发生错误时,问题不是您显示的代码,而是SWF的嵌入代码 作为第一步,我建议您在HTML页面中嵌入带有SWFObject的SWF,这通常会解决Safari Mac的问题