Intereting Posts
Несколько первичных ключей – ORMlite Невозможно передать пользовательский объект в намерении: метод Put Extra является неоднозначным для типа Intent Android – создание пользовательского интерфейса календаря событий. Какие компоненты следует использовать? Объявление переменных кнопок в виде массива с андроидом for loop Как я могу отличить, изменяется ли переключатель, значение флажка пользователем или программно (в том числе путем удержания)? VectorDrawable: как разместить его на холсте? Как получить доступ к переменным активности из фрагмента Android SSH Java-библиотека для Android? Как освободить камеру, когда люди перестанут использовать ваш виджет? Android – Cordova 3.5.0 deviceready не срабатывает после установки медиаплагина Java.lang.VerifyError: Verifier отклонил класс на Lollipop при использовании release APK Веб-просмотр Android после того, как onJsAlert не отвечает DexIndexOverflowException только при выполнении тестов Как я могу запустить Activity из класса non-Activity? Java HttpURLConnection VS Android HttpURLConnection

Какие события DOM доступны для WebKit на Android?

Я создаю мобильное веб-приложение, ориентированное на пользователей Android. Мне нужно знать, какие события DOM доступны мне. Я смог выполнить следующую работу, но не очень надежно:

  • щелчок
  • Mouseover
  • MouseDown
  • MouseUp
  • изменение

Мне не удалось заставить работать:

  • нажатие клавиши
  • KeyDown
  • KeyUp

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

Благодаря!

Обновление: я задал тот же вопрос в списке разработчиков Android . Я буду проводить еще несколько тестов и опубликую результаты как здесь, так и там.

Solutions Collecting From Web of "Какие события DOM доступны для WebKit на Android?"

Хорошо, это интересно. Моим вариантом использования является то, что у меня есть серия ссылок (теги A ) на экране в представлении WebKit. Чтобы проверить, какая область событий доступна, используя jQuery 1.3.1, я привязал каждое событие, указанное на этой странице (даже те, которые не имеют смысла) к ссылкам, а затем использовало элементы управления вверх, вниз и enter на эмуляторе Android и отметило Какие события стреляли в какие обстоятельства.

Вот код, который я использовал для прикрепления событий, с результатами, которые нужно выполнить. Обратите внимание: я использую привязку событий «live», потому что для моего приложения теги A вставляются динамически.

 $.each([ 'blur', 'change', 'click', 'contextmenu', 'copy', 'cut', 'dblclick', 'error', 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'mousewheel', 'paste', 'reset', 'resize', 'scroll', 'select', 'submit', // W3C events 'DOMActivate', 'DOMAttrModified', 'DOMCharacterDataModified', 'DOMFocusIn', 'DOMFocusOut', 'DOMMouseScroll', 'DOMNodeInserted', 'DOMNodeRemoved', 'DOMSubtreeModified', 'textInput', // Microsoft events 'activate', 'beforecopy', 'beforecut', 'beforepaste', 'deactivate', 'focusin', 'focusout', 'hashchange', 'mouseenter', 'mouseleave' ], function () { $('a').live(this, function (evt) { alert(evt.type); }); }); 

Вот как он трясся:

  • При загрузке первой страницы ничто не выделяется (без уродливого оранжевого блока выбора вокруг какого-либо элемента), используя кнопку «вниз» для выбора первого элемента, следующие события mouseenter (по порядку): mouseenter , mousemove , DOMFocusIn , DOMFocusIn

  • С выбранным элементом, переходя к следующему элементу с помощью кнопки «вниз», следующие события mousemove (по порядку): mousemove , DOMFocusOut , DOMFocusIn , DOMFocusOut , DOMFocusIn

  • С выбранным элементом, нажав кнопку «Ввод», следующие события mousemove (по порядку): mousemove , mousedown , DOMFocusOut , mouseup , click , DOMActivate

Это поражает меня как кучу случайного мусора. И кто это дерзкое событие IE-only ( mouseenter ), делающее камею, а затем отдыхает? Ну, по крайней мере, теперь я знаю, какие события нужно наблюдать.

Было бы здорово, если бы другие захотели взять мой тестовый код и сделать более тщательный пробег, возможно, используя элементы формы, изображения и т. Д.

Поскольку это второй по популярности пост + JavaScript на SO (это просто грустный комментарий о состоянии веб-разработки, ориентированный на платформу Android), я подумал, что может быть полезно включить ссылку на результаты теста сенсорных событий pkk по адресу http: //www.quirksmode.org/mobile/tableTouch.html, а также http://www.quirksmode.org/mobile/ в целом.

Начиная с Android 1.5, такие же прикосновения (start | move | end | cancel), что iPhone поддерживает работу на Android.

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