Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2018, 22:17
Новичок на форуме
Отправить личное сообщение для taksebe Посмотреть профиль Найти все сообщения от taksebe
 
Регистрация: 23.11.2018
Сообщений: 9

Заглушка-light для старых браузеров
Приветствую!
Приняла решение использовать для своих целей jQuery v3.3.1, в той версии jQuery, которая поддерживает старые браузеры слишком много костылей, которые нет ни желания, ни острой необходимости постоянно таскать с собой. Создала такую заглушку при загрузке сайта для старых браузеров:
try {
  if ('geolocation' in navigator == false) throw e;
} catch(e) {
  document.getElementById('loading').innerHTML = '<p>The load is canceled.<br>This software needs a modern web browser.';
}

Версии браузеров, которые поддерживают свойство
В IE работает, для других браузеров не было возможности протестировать. Возможно есть более подходящее для данной цели свойство?
Browser Support (jQuery v3.3.1)
Current Active Support
Desktop
Chrome: (Current - 1) and Current
Edge: (Current - 1) and Current
Firefox: (Current - 1) and Current, ESR
Internet Explorer: 9+
Safari: (Current - 1) and Current
Opera: Current
Mobile
Stock browser on Android 4.0+
Safari on iOS 7+
Ответить с цитированием
  #2 (permalink)  
Старый 29.12.2018, 01:00
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Если вам нужна проверка наличия Geolocation API, то приведённый вами способ подходит как раз.

В последнем издании ECMAScript был добавлен новый метод Promise.prototype.finally. Отсутствие данного метода указывает на использование старого движка JS.

try {
    if ("finally" in Promise.prototype === false) throw e;
} catch(e) {
    document.getElementById('loading').innerHTML = '<p>The load is canceled.<br>This software needs a modern web browser.';
}


Но более правильный способ — проверять именно то, что вы хотите использовать!

Я всегда буду благодарен за то, что дал нам jQuery 13 лет назад. Однако он давно исчерпал свои возможности, и, если вам не нужно поддерживать очень старые браузеры, я лично не вижу необходимости использовать его больше.
Ответить с цитированием
  #3 (permalink)  
Старый 29.12.2018, 12:46
Новичок на форуме
Отправить личное сообщение для taksebe Посмотреть профиль Найти все сообщения от taksebe
 
Регистрация: 23.11.2018
Сообщений: 9

Malleys, вы читаете мои мысли, Promise - это самое первое существенное отличие в движках, просто я не знала как это записать, поэтому и обратилась за помощью, неудобно было как-то прямым текстом об этом просить. Насчет использования jQuery 3:
1) Нет желания и времени тестировать код во всех браузерах, потому что опасения все равно будут и если их не опровергать, то они могут перерасти в фобию, мне здоровье важней.
2) Код на jQuery все равно лаконичней и быстрее читается, но гдето можно комбинировать, например ajax
3) Лишний код (для работы с анимацией, ajax, разработчики потерли из основного исходника(третья версия), вынесли в отдельный

Rise, ага, тоже бесит

Последний раз редактировалось taksebe, 29.12.2018 в 12:52.
Ответить с цитированием
  #4 (permalink)  
Старый 29.12.2018, 20:45
Новичок на форуме
Отправить личное сообщение для taksebe Посмотреть профиль Найти все сообщения от taksebe
 
Регистрация: 23.11.2018
Сообщений: 9

Вот так в итоге сделала, потому что начальный вариант и в огнефоксе выбрасывает ошибку
try {
  if (!window.Promise) throw e;
} catch(e) {
  document.getElementById('loading').innerHTML = '<p>The load is canceled.<br>This software needs a modern web browser.';
}

Rise, думаю потому и бесплатно все, что нет нормальной документации

Последний раз редактировалось taksebe, 29.12.2018 в 20:50.
Ответить с цитированием
  #5 (permalink)  
Старый 31.12.2018, 01:37
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Rise
Зачем тогда переменная Current, товарищи?!
Сообщение от jquery.com/browser-support
(Current - 1) и Current означает, что мы поддерживаем текущую стабильную версию браузера, а также версию, предшествующую ей.
Например, сегодня стабильная версия браузера Chrome – 71.0, это значит, что jQuery поддерживается в 71 и 70 версиях браузера. Хотя jQuery может без проблем работать и в более старых версиях брузеров... разработчики jQuery в основном не исправляют ошибки, которые могут возникнуть там. (https://jquery.com/browser-support/)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Заглушка для сайта с e-mail формой FladeX Работа 3 08.12.2010 12:40
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Как присвоить текст строке состояния для всех браузеров? Tend Общие вопросы Javascript 4 14.05.2009 16:38