Как определить механизм верстки браузера в JavaScript?

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

1 ответ

Решение

Заглянуть в 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.3070729; InfoPath.3; rv:11.0) как у Gecko "

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

Navigator.appVersion в Firefox: "5.0 (Windows)"

Другие вопросы по тегам