JQuery Mobile: изящно ухудшаться в неподдерживаемых браузерах? - PullRequest
0 голосов
/ 19 апреля 2011

Я занимаюсь разработкой сайта в jQuery mobile (jQM).Это здорово, но меня беспокоит одна вещь.

jQM поддерживается не во всех мобильных браузерах (особенно BlackBerry 5).Сайт выглядит великолепно в браузере Android: в Opera Mini на Android он фактически сломан: (

Естественно, я разработал сайт с использованием прогрессивного улучшения. Так что он работает без jQM - если я могу сказать браузеруне использовать его!

Вопрос: для платформ, таких как Opera Mini на Android, есть ли способ проверить поддержку jQM и при необходимости полностью отменить jQM?

  • Если jQMподдерживается в этом браузере, используйте его.
  • Если это не так, не загружайте javascript jQM, не загружайте таблицы стилей jQM и используйте базовый сайт JavaScript.

Я знаю о свойстве gradeA(), но вы, вероятно, должны загрузить jQM, чтобы использовать его:

$.mobile.gradeA()

Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Браузер jQuery Mobile тестирует сам себя.

Вы должны настроить код, чтобы он отказался от выполнения своих улучшений.Попробуйте здесь, если вам интересно: https://github.com/jquery/jquery-mobile/blob/master/js/jquery.mobile.support.js

Также: Если это решит работать - вероятно, должно.Попробуйте исправить проблемы, а не пытаться заставить jQuery Mobile ухудшиться

[править]

Хорошо.позволь мне объяснить.JQM, следуя идее прогрессивного улучшения, тестирует возможности браузера и запускает его виджеты и прочее, когда браузер проходит тесты.Вот почему я говорю, что это должно работать, если оно пытается.

Если он пытается улучшить и терпит неудачу - это ошибка / недостающая поддержка на стороне JQM, и в идеальном мире вы должны ожидать, что это будет исправлено.Реальность предполагает, что вы не можете этого ожидать, но вы можете на это надеяться;) Это еще не релиз.

Что я хотел сказать «Попытайтесь исправить ...», так это то, что вам следует загрузить JQM-репозиторий, добавиводну или две строки в тестах поддержки и заставляют их обнаруживать функцию, которая вызывает сбой JQM в этом конкретном случае.Затем запустите make, и у вас будет новый JMQ.

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

[править]

Это действительно то, что вы действительно хотели:

Хороший способ получить ваш код поддержки.

Вы можете реализовать свою собственную функцию gradeA, которая будет возвращать $.support.mediaquery&&yourcondition

См.: http://jquerymobile.com/demos/1.0a4.1/#docs/api/globalconfig.html

Это может помешать JQM работать с нежелательными браузерами.

0 голосов
/ 19 апреля 2011

Как насчет использования jquery support объекта?Есть новые свойства для мобильных устройств.Из документов gradeA является сокращением для $.support.mediaquery.

...