Jak wykryć, czy przeglądarka Chrome używa jQuery?

Mam mały problem z funkcją działającą w chrome, która działa poprawnie w Safari, obie przeglądarki webkit...

Muszę dostosować zmienną w funkcji dla Chrome, ale nie dla Safari.

Niestety, używam tego do wykrywania, czy jest to przeglądarka webkit:

if ($.browser.webkit) {

Ale muszę wykryć:

if ($.browser.chrome) {

Czy Jest jakiś sposób, aby napisać podobne stwierdzenie (wersja robocza tego powyżej)?

Author: abalogh, 2011-06-14

10 answers

$.browser.chrome = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()); 

if($.browser.chrome){
  ............

}

UPDATE:(10x do @Mr. Bacciagalupe)

JQuery usunął $.browser z 1.9 i ich najnowszym wydaniu.

Ale nadal możesz użyć $.przeglądarka jako samodzielna wtyczka, znaleziona tutaj

 106
Author: Haim Evgi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-12 14:29:37
if(/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())){
 alert('I am chrome');
}
 43
Author: adedoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-17 02:53:48

Użytkownik Endless ma rację,

$.browser.chrome = (typeof window.chrome === "object"); 

Kod najlepiej wykrywa przeglądarkę Chrome za pomocą jQuery.

Jeśli używasz IE i dodałeś Googleprame jako wtyczkę to

var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() );

Kod będzie traktowany jako przeglądarka Chrome, ponieważ wtyczka Googleprame modyfikuje właściwość nawigatora i dodaje do niej chromeframe.

 9
Author: Master,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-16 11:11:16

To pytanie było już omawiane tutaj: JavaScript: Jak sprawdzić, czy przeglądarką użytkownika jest Chrome?

Proszę spróbować:

var isChromium = window.chrome;
if(isChromium){
    // is Google chrome 
} else {
    // not Google chrome 
}

Ale bardziej kompletną i dokładniejszą odpowiedzią byłoby to, ponieważ IE11, IE Edge i Opera również zwrócą true dla window.chrome

Więc użyj poniższego:

// 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 
}

Powyższe posty radzą używać jQuery.przeglądarka. ale API jQuery zaleca używanie tej metody .. (zobacz DOCS in API ). I stwierdza swoje funkcjonalność może zostać przeniesiona do wtyczki obsługiwanej przez zespół w przyszłej wersji jQuery.

JQuery API zaleca użycie jQuery.support.

Powodem jest to, że ' jQuery.przeglądarka " używa agenta użytkownika, który może być sfałszowany i jest faktycznie przestarzały w późniejszych wersjach jQuery. Jeśli naprawdę chcesz użyć $.przeglądarka.. Oto link do samodzielnej wtyczki jQuery, ponieważ została ona usunięta z jQuery w wersji 1.9.1. https://github.com/gabceb/jquery-browser-plugin

Lepiej używać funkcji wykrywania obiektów zamiast wykrywania przeglądarki.

Również jeśli używasz Inspektora Google Chrome i przejdź do zakładki konsola. Wpisz "okno" i naciśnij enter. Następnie możesz wyświetlić właściwości DOM dla 'obiektu window'. Po zwinięciu obiektu można wyświetlić wszystkie właściwości, w tym właściwość "chrome".

Mam nadzieję, że to pomoże, chociaż pytanie brzmiało, jak zrobić z z jQuery. Ale czasami prosty javascript jest prostszy!

 8
Author: Jonathan Marzullo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-20 18:11:59

UserAgent można zmienić. aby uzyskać większą wytrzymałość, użyj zmiennej globalnej określonej przez chrome

$.browser.chrome = (typeof window.chrome === "object");
 6
Author: Endless,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-08 11:33:40
var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() );
 5
Author: thinkdevcode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-14 05:39:52

Chociaż nie jest to Jquery, sam używam jquery, ale do wykrywania przeglądarki użyłem skryptu na tej stronie kilka razy. Wykrywa wszystkie główne przeglądarki, , a następnie niektóre . Praca została wykonana dla Ciebie.

 1
Author: stefgosselin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-14 05:40:21

Niestety ze względu na najnowszą aktualizację Opery !!window.chrome (i inne testy na obiekcie window) podczas testowania w Operze zwraca true.

Conditionizr zajmuje się tym za Ciebie i rozwiązuje problem opery:

conditionizr.add('chrome', [], function () {
    return !!window.chrome && !/opera|opr/i.test(navigator.userAgent);
});
Sugerowałbym użycie go, ponieważ żadne z powyższych nie jest teraz ważne.

To pozwala na:

if (conditionizr.chrome) {...}

Conditionizr zajmuje się wykrywaniem innych przeglądarek i jest znacznie szybszy i niezawodny niż hacki jQuery.

 1
Author: Halcyon991,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-04 10:43:04

Jako szybki dodatek, a dziwię się, że nikt o tym nie pomyślał, przydałby się operator in:

"chrome" in window

Oczywiście to nie jest używanie JQuery, ale pomyślałem, że to ujmę, ponieważ jest to przydatne w czasach, gdy nie używasz żadnych zewnętrznych bibliotek.

 1
Author: Florrie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-08 18:36:22

Kiedy testuję odpowiedź @ IE, zawsze mam "true". Lepszy jest ten, który działa również @IE:

var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);

Jak opisano w tej odpowiedzi: https://stackoverflow.com/a/4565120/1201725

 0
Author: Bahadir Tasdemir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:39