Как обнаружить хром и браузер сафари (WebKit)

Я пытаюсь обнаружить хром и браузер сафари с помощью jQuery или JavaScript. Я думал, что мы, как предполагается, не используем jQuery.browser. Есть ли здесь какие-либо предложения?Большое спасибо!

57
задан 27 September 2012 в 20:23

2 ответа

Существуют все еще причуды и несоответствия в 2019.

, Например, с масштабированным svg и событиями указателя, между браузерами.

Ни один из ответа этой темы не работает больше. (возможно, те, которые имеют jquery)

Вот альтернатива путем тестирования с JavaScript, если правило CSS поддерживается через собственный компонент api поддержки CSS. Мог бы развиться, для адаптации!

Примечание, что возможно передать много правил CSS, разделенных точкой с запятой для самого прекрасного обнаружения.

if (CSS.supports("( -webkit-box-reflect:unset )")){
  console.log("WEBKIT BROWSER")
  // More math...
 } else {
  console.log("ENJOY")
 }

if (CSS.supports("( -moz-user-select:unset )")){
  console.log("FIREFOX!!!")
 }

Остерегаются для не использования его в циклах, для производительности, лучше заполнить константу на загрузке:

const ff = CSS.supports("( -moz-user-select:unset )")
if (ff){ //... } 

Используя [1 117] CSS только , вышеупомянутое было бы:

@supports (-webkit-box-reflect:unset) {
  div {
    background: red
  }
}

@supports (-moz-user-select:unset) {
  div {
    background: green
  }
}
<div>
  Hello world!!
</div>

Список возможных - WebKit только правила CSS.

Список возможного-moz-только управляет.

я могу использовать поддержку CSS?

4
ответ дан 1 November 2019 в 15:27

Много ответов здесь. Вот мое первое внимание.

Без JavaScript, включая возможность JavaScript первоначально отключен пользователем в его браузере в целях безопасности, чтобы быть белый перечисленный пользователем, если пользователь будет доверять сайту, то DOM не будет применим, потому что JavaScript выключен.

Программно, Вас оставляют с серверной стороной бэкенда или frontend клиентским соображением.

С бэкендом, можно использовать общий знаменатель заголовок запроса "Агента пользователя" HTTP и/или любой возможный собственный заголовок Запроса HTTP, выпущенный браузером для вывода браузера определенный материал HTML.

С клиентским сайтом, можно хотеть осуществить JavaScript, чтобы позволить Вам использовать DOM. Если так, затем Вы, вероятно, захотите сначала использовать следующее в своей странице HTML:

<noscript>This site requires Javascript. Please turn on Javascript.</noscript>

, В то время как мы направляемся в день с каждым веб-кодером, будет зависеть от JavaScript в некотором роде (или не), сегодня, чтобы предположить, что каждому пользователю включили JavaScript, была бы разработка проекта и разработка продукта ошибка QA.

я видел, слишком может сайты, кто заканчивает с пустой страницей, или сайт ломается, потому что он предположил, что каждому пользователю включили JavaScript. Нет. В целях безопасности у них может быть JavaScript первоначально прочь, и некоторые браузеры, как Chrome, позволят пользователю белому списку веб-сайт по домену доменным основанием. Край является единственным браузером, о котором я знаю, где Microsoft приняла решение полностью отключить способность пользователя выключить JavaScript. Край не предлагает белого понятия списка следовательно, это - одна причина, я лично не использую Край.

Используя тег простой способ сообщить пользователю, что Ваш сайт не будет работать без JavaScript. После того как пользователь включает его и обновляет/перезагружает страницу, DOM теперь доступен для использования методов, процитированных потоком, отвечает для обнаружения хрома по сравнению с сафари.

Как ни странно, я добрался здесь, потому что я обновлял платформой, и погуглите тот же основной вопрос; хром по сравнению с sarafi. Я не знал, что Chrome создает Объект DOM, названный "хромом", который является действительно всем, что необходимо обнаружить "хром" по сравнению со всем остальным.

var isChrome = typeof (хром) === "объект";

Если это правда, Вы получили Chrome, если ложь, Вы получили некоторый другой браузер.

Проверка, чтобы видеть, создает ли Safari свой собственный Объект DOM также, если так, получают имя объекта и делают то же самое, например:

var isSafari = (typeof (сафари) === "объект");

Hope эти подсказки справка.

1
ответ дан 1 November 2019 в 15:27