Заглушка-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+ |
Если вам нужна проверка наличия 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 лет назад. Однако он давно исчерпал свои возможности, и, если вам не нужно поддерживать очень старые браузеры, я лично не вижу необходимости использовать его больше. |
Malleys, вы читаете мои мысли, Promise - это самое первое существенное отличие в движках, просто я не знала как это записать, поэтому и обратилась за помощью, неудобно было как-то прямым текстом об этом просить. Насчет использования jQuery 3:
1) Нет желания и времени тестировать код во всех браузерах, потому что опасения все равно будут и если их не опровергать, то они могут перерасти в фобию, мне здоровье важней. 2) Код на jQuery все равно лаконичней и быстрее читается, но гдето можно комбинировать, например ajax 3) Лишний код (для работы с анимацией, ajax, разработчики потерли из основного исходника(третья версия), вынесли в отдельный Rise, ага, тоже бесит |
Вот так в итоге сделала, потому что начальный вариант и в огнефоксе выбрасывает ошибку
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, думаю потому и бесплатно все, что нет нормальной документации |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 09:14. |