Каков наилучший способ определить, действительно ли пользователь использует Safari? - PullRequest
0 голосов
/ 01 ноября 2010

Как лучше всего определить, действительно ли пользователь использует Safari?

Ответы [ 4 ]

4 голосов
/ 01 ноября 2010

Возможно, вы захотите прочитать http://www.quirksmode.org/js/detect.html, а затем http://www.quirksmode.org/js/support.html и понять, что лучшее, что вы можете сделать, это проверить, что пользователь говорит вам, какой браузер он использует (это будет User_Agent) , Вы никогда не можете сказать со 100% уверенностью, что они используют данный браузер, потому что вы должны полагаться на то, что передается из браузера, и это может быть переопределено во многих точках.

Однако решение quirksmode.org, как правило, является лучшим способом справиться с одной проверкой во всех движках и браузерах.

Используете ли вы конкретную структуру JavaScript, которая может позволить вам более точно определить, что они используют? Какой серверный язык вы используете? (и как кто-то еще спросил, почему только Safari?)

1 голос
/ 01 ноября 2010
if(navigator.userAgent.toLowerCase().indexOf("safari") != -1 && navigator.userAgent.toLowerCase().indexOf("chrome") == -1){
    // you code here
}
1 голос
/ 01 ноября 2010

Другие уже отметили, что перехват браузера не идеален, но есть случаи, когда ошибка возникает только в браузере, и ее может быть трудно обнаружить. В этом случае вы можете прослушивать браузер и надеяться, что строка пользовательского агента верна. Вот что делает Ext-JS.

var ua = navigator.userAgent.toLowerCase();
var isChrome = /\bchrome\b/.test(ua);
var isSafari = !isChrome && /safari/.test(ua);

Строка 62 представления источника: http://dev.sencha.com/deploy/dev/docs/source/Ext.html имеет все определения браузера Ext в удобном для чтения формате.

Это хрупко и, вероятно, не будет работать, так как выходят новые версии и браузеры.

Скажите нам, почему вы тестируете сафари, чтобы мы могли убедиться, что нет лучшего способа добиться того, чего вы хотите.

1 голос
/ 01 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...