Actionscript 3, flex: Как узнать, в каком браузере вы сейчас находитесь? - PullRequest
0 голосов
/ 10 июля 2011

Мне нужно определить через AS3 внутри приложения flex mxml, которое является браузером, в котором я нахожусь - FF, Chrome, IE и т. Д., Только имя и версия.Как это сделать?

Ответы [ 3 ]

7 голосов
/ 11 июля 2011

Да, вы собираетесь использовать javascript, но на самом деле вам не нужно помещать javascript на страницу.

Вот небольшой пример сценария получения этой информации из вашего приложения Flex без добавления чего-либо в содержимое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>

Это отслеживает информацию на консоли, поэтому, например, когда я ее запускаю, я получаю:

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)

Дайте мне знать, еслиу вас есть какие-либо проблемы!

1 голос
/ 10 июля 2011

Это не сложно, если вы используете некоторый клиентский JavaScript и класс ExternalInterface в библиотеке Flash.

Вот краткое руководство по этому вопросу: http://codingrecipes.com/calling-a-javascript-function-from-actionscript-3-flash

Вашему JS потребуетсязапустить проверку клиента браузера.

0 голосов
/ 15 декабря 2016

Согласно моему исследованию navigator.appName вернет строку Netscape для таких браузеров, как: IE11, Firefox, Chrome и Safari. отметьте 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";
}

ссылка: проверить посетитель ОС и браузер, используя as3

...