Активировать клавиатуру iOS в веб-приложении на нетекстовом элементе - PullRequest
2 голосов
/ 02 декабря 2011

У меня есть веб-приложение, которое использует div, который не contentEditable. Вместо этого, когда элемент div сфокусирован, я обрабатываю нажатия клавиш и сам вставляю / удаляю / обновляю innerHTML, по сути, имитируя div contentEditable.

Мне все равно, обязательно ли это с javascript, но мне нужен способ запуска клавиатуры iOS из веб-приложения.

Я пытался навести невидимую текстовую область на div, и когда она сфокусирована, я скрываю текстовую область и фокусируюсь на div. Это работает, но как только фокусировка non-contentEditable фокусируется, клавиатура исчезает. Обратите внимание, что этот трюк работал до iOS 5.

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

Ответы [ 2 ]

1 голос
/ 20 декабря 2012

Для веб-приложения мне тоже нужна клавиатура.Я хотел, чтобы это работало на iOS, и поэтому создал небольшой обходной путь.

Само WebApp использует прослушиватель клавиш для захвата нажатой клавиши (например, backspace для удаления элементов).

Я создал текстовое полес нулевой высотой, шириной и непрозрачностью.Не используйте display:none; или visibility:hidden;.Это заставляет iOS 'Safari не фокусировать текстовое поле.

function popKeyboard() {
    document.getElementById("dummyText").focus();
}

<input type="text" id="dummyText" style="width:0px; height:0px; opacity:none;" />
<input type="button" value="show keyboard" onclick="popKeyboard();" />

Я надеюсь, что это поможет вам (даже если вы спросили год назад:))

1 голос
/ 02 декабря 2011

Вопрос уже был размещен здесь: Ручная активация клавиатуры iPhone / iPad / iPod из JavaScript

Похоже, это невозможно, боюсь!

...