我有一個有點問題,在鍍鉻的功能運行在Safari中,無論是WebKit瀏覽器正常工作......如何使用jQuery檢測瀏覽器是否爲Chrome?
我需要自定義一個變量在Chrome的功能,而不是Safari瀏覽器。
可悲的是,我一直用這個來檢測,如果它是一個WebKit瀏覽器:
if ($.browser.webkit) {
但我需要檢測:
if ($.browser.chrome) {
有沒有辦法寫一個類似的聲明(上面的工作版本)?
我有一個有點問題,在鍍鉻的功能運行在Safari中,無論是WebKit瀏覽器正常工作......如何使用jQuery檢測瀏覽器是否爲Chrome?
我需要自定義一個變量在Chrome的功能,而不是Safari瀏覽器。
可悲的是,我一直用這個來檢測,如果它是一個WebKit瀏覽器:
if ($.browser.webkit) {
但我需要檢測:
if ($.browser.chrome) {
有沒有辦法寫一個類似的聲明(上面的工作版本)?
$.browser.chrome = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase());
if($.browser.chrome){
............
}
UPDATE:(10倍到@Mr Bacciagalupe。)
的jQuery已經從1.9和他們最新的版本中刪除$.browser
。
但你仍然可以使用$ .browser作爲一個獨立的插件,發現here
var is_chrome = /chrome/.test(navigator.userAgent.toLowerCase());
雖然它不是jQuery的使用jQuery自己,但對於檢測瀏覽器我用的腳本上this page幾次。它檢測所有主要瀏覽器,,然後一些。這項工作幾乎都是爲你完成的。
的userAgent是可以改變的。爲更穩健,使用由鉻
$.browser.chrome = (typeof window.chrome === "object");
if(/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())){
alert('I am chrome');
}
這是在IE邊緣檢測 – blackhawk 2017-01-09 20:52:04
用戶無盡的是對指定的全局變量,
$.browser.chrome = (typeof window.chrome === "object");
代碼最好使用jQuery來檢測Chrome瀏覽器。
如果你使用IE瀏覽器,並加入GoogleFrame作爲插件然後
var is_chrome = /chrome/.test(navigator.userAgent.toLowerCase());
代碼當作Chrome瀏覽器,因爲GoogleFrame插件修改導航性能和增加它裏面chromeframe。
這個問題已經在這裏討論:JavaScript: How to find out if the user browser is Chrome?
請試試這個:
var isChromium = window.chrome;
if(isChromium){
// is Google chrome
} else {
// not Google chrome
}
但是,一個更加完整和準確的回答會是這樣,因爲IE11,IE邊緣,和Opera也將返回true
爲window.chrome
因此,使用以下:
// please note,
// that IE11 now returns undefined again for window.chrome
// and new Opera 30 outputs true for window.chrome
// and new IE Edge outputs to true now for window.chrome
// so use the below updated condition
var isChromium = window.chrome,
vendorName = window.navigator.vendor,
isOpera = window.navigator.userAgent.indexOf("OPR") > -1,
isIEedge = window.navigator.userAgent.indexOf("Edge") > -1;
if(isChromium !== null
&& isChromium !== undefined
&& vendorName === "Google Inc."
&& isOpera == false
&& isIEedge == false) {
// is Google chrome
} else {
// not Google chrome
}
以上帖子建議使用jQuery.browser。但jQuery API建議不要使用此方法 ..(請參閱DOCS in API)。並聲明其功能可能會轉移到未來版本jQuery中支持團隊的插件中。
jQuery API建議使用jQuery.support
。
原因是'jQuery.browser'使用可能被欺騙的用戶代理,實際上它在jQuery的更高版本中被棄用。如果你真的想使用$ .browser ..以下是獨立jQuery插件的鏈接,因爲它已從jQuery版本1.9.1中刪除。 https://github.com/gabceb/jquery-browser-plugin
最好使用特徵對象檢測代替瀏覽器檢測。
另外,如果您使用Google Chrome檢查器並轉到控制檯選項卡。輸入'窗口',然後按回車。然後你就可以查看'窗口對象'的DOM屬性。當您摺疊對象時,您可以查看所有屬性,包括'chrome'屬性。
我希望這可以幫助,即使問題是如何處理jQuery。但是有時直的javascript更簡單!
由於Opera的最新更新!!window.chrome
(以及對窗口對象的其他測試),在Opera中測試時返回true。
Conditionizr需要照顧這對你和解決問題的歌劇:
conditionizr.add('chrome', [], function() {
return !!window.chrome && !/opera|opr/i.test(navigator.userAgent);
});
我強烈建議使用它作爲以上都不是現在是有效的。
這允許你做:
if (conditionizr.chrome) {...}
Conditionizr照顧其他瀏覽器的檢測和比jQuery的黑客快得多,可靠。
作爲一個快速另外,我很驚訝,沒有人想到了這一點,你可以使用in
操作:
"chrome" in window
顯然,這不是使用JQuery,但我想我會把它因爲當你不使用任何外部庫時,它很方便。
當我測試答案@IE時,我總是「真實」。更好的方法是這樣的,其作品也@IE:
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
也許你可以張貼破碎功能,看看我們是否能幫助你得到它的鍍鉻工作壓力太大? – Todd 2011-06-14 05:34:27
該功能相當長,我知道如何解決它,我只需要能夠自定義它爲Chrome – TaylorMac 2011-06-14 05:38:09
http://stackoverflow.com/questions/3303858/distinguish-chrome-from-safari-using-jquery-瀏覽器 – 2011-06-14 05:38:09