2015-09-16 2 views
1

Я хочу создать по-разному поведение в соответствии с layout engine браузера клиента. Как определить, что это WebKit (Chrome, Safari, Yandex, Midori), Gecko (Firefox, K-Meleon, Netscape), Trident (IE) или другие?Как определить механизм отображения браузера в JavaScript?

+1

Зачем вам это нужно? –

+0

@LeshaOgonkov Различные механизмы компоновки ведут себя по-разному в некоторых ситуациях (например: [InfoBubble карты google] (http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/examples/example.html/) только анимируется в WebKit). – Armfoot

+0

Что вы хотите сделать, когда нацеленный движок будет действовать иначе, чем ваши ожидания? –

ответ

0

Посмотрите на navigator.userAgent (просто введите его в консоль вашего браузера). Вы можете найти следующим образом (чувствительно к регистру):

if(navigator.userAgent.search(/trident/i)>0){ 
    //Internet Explorer 
} else if(navigator.userAgent.search(/webkit/i)>0){ 
    //Chrome, Safari 
} else if(navigator.userAgent.search(/???/i)>0){ //replace ??? by the appropriate engine 
    //others 
} else if(navigator.userAgent.search(/gecko/i)>0){ 
    //Firefox 
} 

Оставить Gecko для последнего условия, так как UserAgent свойство может содержать выражение «как Gecko», WebKit браузеры и IE, а также:

в IE navigator.userAgent: «Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; InfoPath.3; rv: 11.0) как Gecko "

Свойство navigator.appVersion может содержать ту же информацию, как navigator.userAgent но в некоторых браузерах не:

Фирефокса navigator.appVersion: "5.0 (Windows)"

Смежные вопросы