jQuery .show () и BlackBerry OS5 - PullRequest
       30

jQuery .show () и BlackBerry OS5

2 голосов
/ 15 июля 2011

Это, вероятно, длинный выстрел, но ...

Любой, кто сталкивается с проблемой, использует jQuery show () в веб-браузере BlackBerry OS5 и вызывает ее либо не работает (на устройстве), либо происходит сбойтелефон (симулятор)?Если звук, нашел решение?

То же самое происходит, если мы используем .show () или .css ('display', 'block')

Работает в OS6, iOS, Firefox,Chrome, и т. Д. И т. Д. ... но умирает в браузере OS5.

О, я должен добавить:

Из того, что мы можем сказать, это только проблема при запуске нашего приложения нашегофактические серверы (JSF, websphere).Когда мы тестируем jQuery локально как статическую страницу, он работает нормально.

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Проблема, которую мы обнаружили, заключается в том, что в браузере OS5 возникают проблемы с обновлением DOM при изменении свойств экрана с BLOCK на NONE. Представитель BlackBerry даже сказал нам, что следует избегать обновления DOM в OS5 (тьфу!).

Итак, решение, которое мы в итоге решили, заключалось в том, чтобы не использовать .show() и .hide(), а вместо этого мы переключали имя класса. Каждое устройство, кроме OS5, будет иметь имя класса, переключающее свойство отображения, OS5, однако, будет переключать высоту с auto до 0px

Это сделало OS5 счастливым.

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

Мы также можем без проблем использовать .show () в другом месте приложения.

В конце концов, я считаю, что это определенная комбинация CSS, примененная к родительским элементам, которая убивает браузер, если некоторые из его дочерних элементов имеют переключение display.

1 голос
/ 19 июля 2011

Моя команда на работе также использует jQuery Mobile и столкнулась с похожими проблемами на устройствах (хотя я не думаю, что мы видели сбой симулятора из-за этого).Вот что мы нашли до сих пор:

  • Ваш звонок на show() может работать, но обрабатывается настолько медленно, что вы не сдаете его перед загрузкой. Вся DOM для веб-страницы обрабатывается каждый раз, когда вы добавляете, удаляете или изменяете какой-либо атрибут или элемент на странице .В сообщении на форумах BlackBerry предлагается удалить элемент перед его изменением для повышения производительности.

  • На некоторых устройствах мы обнаружили, что вызов show() будет работать,но пользовательский интерфейс обновляется только после прокрутки вверх или вниз по странице.Если ваша страница слишком коротка для прокрутки, вам может не повезти.

  • Атрибут onclick на сенсорных экранах игнорируется (но отлично работает на устройствах с трекболом / сенсорной панелью)и, возможно, ваш show() звонок не дает никаких действий.Чтобы наши гиперссылки работали на всех устройствах, мы помещаем вызовы JavaScript в атрибуты onclick и href:
    <a href="javascript:showThings();" onclick="javascript:showThings();">Show</a>

  • При вызове JavaScript из onclick метод, нам пришлось добавить к вызову метода javascript: примерно так:
    <a href="#" onclick="javascript:showThings();">Show</a>
    (большинство современных браузеров предполагают, что ваше значение onclick должно оцениваться как JavaScript)

  • Навигация на основе фокуса не включена по умолчанию, что вызывает проблемы при использовании устройств с трекболом / тачпадом (экран блокируется и перестает реагировать на нажатия клавиш).Вы можете включить навигацию на основе фокуса либо в config.xml вашего проекта, либо с помощью атрибута гиперссылки RIM .Я забыл, с какой проблемой мы столкнулись после включения этого в config.xml, но вместо этого мы использовали атрибут гиперссылки x-blackberry-initialFocus.

Трудно сказать точно, какой из перечисленных пунктовможет относиться к вашей ситуации, надеюсь, что-то уместно или полезно.До сих пор моя команда не впечатлила опыт веб-разработки на BlackBerry, особенно различия между OS 5 и 6, а также между трекболом / тачпадом и сенсорными устройствами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...