Javascript onchange, работающий в текстовом поле (браузер Symbian)
-
19-08-2019 - |
Вопрос
Это может относиться не только к Symbian, но и к другим мобильным операционным средам...Однако проблема в том, что при изменении поля текстовой области я хотел бы обновлять счетчик по мере ввода.Это легко сделать в большинстве браузеров с помощью чего-то подобного в теге textarea:
onkeyup="document.getElementById('size').innerHTML=this.value.length;
Однако в Symbian событие onkeyup, похоже, не срабатывает нормально (кажется, что все входные данные буферизованы или что-то в этом роде).Теперь я могу заменить это на:
onblur="document.getElementById('size').innerHTML=this.value.length;
... Это работает нормально, но, конечно, обновляет DIV только при потере фокуса (что лучше, чем ничего, но не так приятно, как обновлять его по мере ввода).
Кто-нибудь сталкивался с подобными проблемами конкретно на Symbian?В любом другом мобильном браузере?Есть какие-нибудь идеи / решения?
Я ненавижу Symbian с тех пор, как начал им пользоваться - в их API так много подобных странностей.Я проголосую за любого, кто жалуется на Symbian.;-)
Решение
В версии WebKit для Symbian события клавиатуры полностью перепутаны.Единственный надежный способ справиться с ними - установить обработчик в документе [!].Я НЕ пробовал это в ситуации, когда textarea имеет фокус, но это определенно работает с более простыми элементами управления.По сути, вы используете onfocus и onblur для связывания / разъединения специфичных для элемента управления обработчиков событий с документом.Конечно, если вы хотите создать повторно используемый виджет таким образом, вас ждет море неприятностей :(
OTOH, если вас беспокоит небольшая особенность клавиатуры Symbian, обратите внимание на события с мышью в Android mini-Chrome...они идут под заголовком FUBAR!
..Макс...
PS.Если вам нужна дополнительная помощь:макс-на-мотовилове-точка-ком.Вы должны быть в состоянии найти эту проблему в Google на странице forum.nokia.com, но информации там немного...все это методом проб и ошибок.