Actionscript 3、flex:如何找出您当前使用的浏览器?

发布于 2024-11-19 11:29:11 字数 80 浏览 3 评论 0原文

我需要通过 AS3 内部的 flex mxml 应用程序检测我所在的浏览器 - FF、Chrome、IE 等,只有名称和版本。这样的事该怎么办呢?

I need to detect via AS3 inside flex mxml appication which is browser I am in - FF, Chrome, IE etc, only name and version. How to do such thing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

猥琐帝 2024-11-26 11:29:11

是的,您将使用 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)

如果您有任何问题,请告诉我!

Yes, you're going to use javascript, but you dont actually need to put javascript in the page.

Here's a quick script example of getting that information from your flex app without adding anything to the containing html page:

<?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>

This traces the info out to the console, so for example when I run it I get :

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)

Let me know if you have any issues!

维持三分热 2024-11-26 11:29:11

如果您使用一些客户端 JavaScript 和 Flash 库中的ExternalInterface 类,这并不困难。

这是有关执行此操作的简短教程: http://codingrecipes.com /calling-a-javascript-function-from-actionscript-3-flash

您的 JS 需要运行浏览器客户端检查。

It's not tricky if you use some client side JavaScript and the ExternalInterface class in the Flash library.

Here's a brief tutorial on doing that: http://codingrecipes.com/calling-a-javascript-function-from-actionscript-3-flash

Your JS would need to run a browser client check.

許願樹丅啲祈禱 2024-11-26 11:29:11

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

如果您想检测浏览器名称,请尝试以下操作:

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";
}

参考:检查访客操作系统和浏览器使用as3的浏览器

As per my research navigator.appName will return string Netscape for browsers like: IE11, Firefox, Chrome and Safari. check this.

If you want to detect browser name try 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";
}

reference : check visitor OS & Browser using as3

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文