2011-07-10 36 views

回答

7

是的,你要使用JavaScript,但你实际上不需要把JavaScript放在页面中。

这里是正从你的Flex应用程序,信息无所添加到包含HTML页面的快速脚本示例:

<?xml version="1.0"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" 
      creationComplete="creationCompleteHandler(event)"> 
<fx:Script> 
    <![CDATA[ 
     import mx.events.FlexEvent; 

     protected function creationCompleteHandler(event:FlexEvent):void 
     { 
      var appName : String = String(ExternalInterface.call("function(){return navigator.appName}")); 
      var appVersion : String = String(ExternalInterface.call("function(){return navigator.appVersion}")); 
      var userAgent : String = String(ExternalInterface.call("function(){return navigator.userAgent}")); 
      trace(appName) ; 
      trace(appVersion); 
      trace(userAgent); 
     } 

    ]]> 
</fx:Script> 

这痕迹信息输出到控制台,因此,例如,当我运行它我得到:

Microsoft Internet Explorer 
4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E) 
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E) 

让我知道如果您有任何问题!

+0

感谢接受。附: userAgent是关闭浏览器嗅探的最可靠的工具。 :) – Nate

+0

'navigator.appName'返回'Netscape'而不是浏览器名称。 –

0

根据我的研究navigator.appName将针对IE11,Firefox,Chrome和Safari等浏览器返回字符串Netscape。检查this.

如果你想检测浏览器的名称试试这个:

var browserName:String; 
var userAgent:Object = ExternalInterface.call("window.navigator.userAgent.toString"); 

if(userAgent.toLowerCase().indexOf("chrome") !== -1) 
{ 
browserName = "Chrome"; 
} 

if(userAgent.toLowerCase().indexOf("mozilla") !== -1) 
{ 
browserName = "Mozilla"; 
} 

if(userAgent.toLowerCase().indexOf("safari") !== -1) 
{ 
browserName = "Safari"; 
} 

参考:check visitor OS & Browser using as3

相关问题