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

голоса
31

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

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

Я не был в состоянии получить следующие к работе:

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

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

Благодаря!

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

Задан 24/01/2009 в 08:13
источник пользователем
На других языках...                            


3 ответов

голоса
20

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

Вот код , который я использовал , чтобы прикрепить события, с результатами , чтобы следовать. Обратите внимание, что я использую «живое» событие связывания , потому что для моего приложения, то 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);
    });
});

Вот как он вытряхнул:

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

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

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

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

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

Ответил 24/01/2009 в 22:51
источник пользователем

голоса
9

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

Ответил 03/11/2010 в 16:39
источник пользователем

голоса
5

На Android 1.5, то же самое прикосновение (начало | ход | конец | отменить) события, что iPhone поддерживает работу в Android, а также.

Одна из проблем, я обнаружил, что TouchMove концов получить в очереди. Нет обходной путь еще.

Ответил 07/05/2009 в 08:12
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more