jQuery.browserは 1.4 の時点でかなり簡単に webkit を識別できるようです。しかし、Chrome と Safari (およびその逆) を区別するにはどうすればよいでしょうか?
質問する
33681 次
7 に答える
38
Sarfrazは彼の答えを修正していないので(正しい方向に私を向けてくれてありがとうSarfraz)、ここに機能するコードを投稿します。
var userAgent = navigator.userAgent.toLowerCase();
$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
// Is this a version of Chrome?
if($.browser.chrome){
userAgent = userAgent.substring(userAgent.indexOf('chrome/') +7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
$.browser.version = userAgent;
// If it is chrome then jQuery thinks it's safari so we have to tell it it isn't
$.browser.safari = false;
}
// Is this a version of Safari?
if($.browser.safari){
userAgent = userAgent.substring(userAgent.indexOf('version/') +8);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
$.browser.version = userAgent;
}
于 2010-07-29T16:20:24.430 に答える
37
jQueryなし
isChrome = function() {
return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
}
isSafari = function() {
return /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
}
jQueryで
jQuery.browser
(jQueryから削除されたため、以下は jQuery 1.9 以降では機能しません。 http://api.jquery.com/jQuery.browser/を参照してください)
$.browser.chrome = $.browser.webkit && !!window.chrome;
$.browser.safari = $.browser.webkit && !window.chrome;
于 2011-08-08T07:13:40.623 に答える
2
あなたは次のようにすることができます:
// Is this a version of Chrome?
if($.browser.chrome){
userAgent = userAgent.substring(userAgent.indexOf('chrome/') +7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
// If it is chrome then jQuery thinks it's safari so we have to tell it it isn't
$.browser.safari = false;
}
// Is this a version of Safari?
if($.browser.safari){
userAgent = userAgent.substring(userAgent.indexOf('safari/') +7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
}
于 2010-07-21T21:07:54.180 に答える
2
/Chrome/.test(navigator.userAgent)
于 2010-07-21T21:14:31.777 に答える
2
非 JQuery ユーザーの場合:
navigator.userAgent.indexOf('WebKit') + 1 ?
((navigator.vendor || '').indexOf('Apple') + 1 ? /* Safari */ : /* Chrome */)
: /* not Webkit */
于 2012-04-24T11:40:23.850 に答える
1
このアプローチも試してみることができます。私にとってはうまくいきます。
isSafari: function ()
{
var isSafari = (navigator.userAgent.indexOf('Safari') != -1
&& navigator.userAgent.indexOf('Chrome') == -1)
console.log('IsSafari : ' + isSafari);
return isSafari;
},
于 2015-02-12T07:13:05.570 に答える
0
window.chrome?$.browser.chrome=!0:($.browser.webkit&&($.browser.safari=!0),$.browser.chrome=!1);
このパッチは$.browser.chromeを追加し、 $ .browser.safariから Goolge Chrome 検出を除外します
于 2012-03-26T07:39:50.183 に答える