Попытка уйти в отставку jquery-migrate

В настоящее время я использую $.browser.webkit и $.browser.msie, потому что типы ввода между браузерами имеют множество уникальных различий пользовательского интерфейса, которые мне приходится учитывать.

В частности: Chrome изменяет мой диапазон на ползунок, а IE - нет; и я должен поместить счетчик на тип времени IE, Chrome покрывает это. Есть и другие, но это те, с которыми мне приходится иметь дело больше всего.

Каков предпочтительный способ проверки этих различий, а не использование теста браузера migrate lib? (Я знаю, что могу запросить агент пользователя напрямую, но я бы предпочел запросить пользовательский интерфейс, чтобы узнать, нужно ли мне добавить счетчик, ползунок и т. д.)


person Brian Webb    schedule 03.10.2013    source источник
comment
Если вы хотите проверить доступность элементов html5, создайте в памяти ввод типа date и проверьте, является ли это датой или текстовым полем. Это часто задаваемые вопросы   -  person mplungjan    schedule 03.10.2013
comment
Поле отображается как доступное, но они отображаются совершенно по-разному. Это проблема рендеринга, которую я хочу решить.   -  person Brian Webb    schedule 03.10.2013
comment
Это особенности элементов, которые я пытаюсь понять, как их тестировать.   -  person Brian Webb    schedule 04.10.2013
comment
возможный дубликат Как проверить, поддерживается ли ввод HTML5?   -  person mplungjan    schedule 04.10.2013


Ответы (1)


Короткий ответ, у mplungjan был ответ, который был близок, но не то, что мне было нужно. Если вы посмотрите на IE11 и Chrome, где у обоих есть поддерживаемая функция, вы можете увидеть, где они совершенно по-разному отображают поддержку. Таким образом, мое решение закончилось тем, что осталось с мигрирующей библиотекой для определения браузера и версии, а затем мой код переопределял рендеринг в браузерах, которые в нем нуждаются.

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

Что касается случая, когда функция не поддерживается, я просто продолжу использовать стандартный тест для функции, которая сработала и mplungjan ссылается на один из самых простых способов тестирования. Не лучший, а самый простой.

Переход на Twitter Bootstrap и пользовательский интерфейс Angular.JS уменьшил некоторые из этих странностей, используя решения других людей.

person Brian Webb    schedule 12.11.2013
comment
Вы не должны полагаться на обнаружение браузера. Одного я не понимаю. Если у вас уже есть рабочий счетчик, слайдер и т. д., почему бы просто не использовать их? Я имею в виду в каждом браузере. Вам не нужно ничего обнаруживать. - person kapa; 03.06.2014
comment
Проблема в том, что каждый браузер отображает пользовательский интерфейс по-разному. CSS заходит так далеко. Чтобы преодолеть различия в пользовательском интерфейсе и совместимость с браузерами, я зашел так далеко, как только мог, с обнаружением возможностей Modernizr. Итак, теперь я нахожусь в точке, когда вещи просто не работают правильно, я создал совместимую библиотеку и преодолел недостатки с помощью библиотеки. Впрочем, это все старое, с тех пор я все это дело забросил и пошел с Twitter Bootstrap + Angular.js для фронтенда. - person Brian Webb; 04.06.2014