Открыть клавиатуру iPad через JavaScript в нетекстовом поле? - PullRequest
11 голосов
/ 19 июля 2011

У меня есть div, который действует как текстовое поле через некоторый умный javascript.Да, пахнет, но это код поставщика, который я не могу изменить: (

На iPad клавиатура не отображается, потому что это не текстовое поле. Есть ли способ принудительно открыть клавиатуру с помощью JavaScriptили украсьте HTML-код чем-то, что говорит Safari «Да, это действительно текстовое поле, просто поверьте мне!»?

1 Ответ

11 голосов
/ 19 июля 2011

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

Я просто помещаю текстовое поле с его непрозрачностью, равной 0, над рассматриваемым div. Затем я изменяю div с содержанием текстового поля при изменении.

вот так (используя jQuery)

$('textarea').bind('input', function(e){
    var changedVal = $( e.currentTarget ).val();
    $('div').html( changedVal );    
});

// The input event is not a cross browser solution, use a combination of 
// keyboard and mouse events to correctly respond to any changes in the textarea

Если код вашего поставщика полагается на прослушиватели событий клавиатуры или мыши, чтобы сделать его волшебным, вы можете проксировать все типы событий на div ниже.

Примерно так (с использованием jQuery)

$('textarea').bind('keyup keydown keypress mouseup mousedown click', function(e) {
    e.currentTarget = $('div').get(0);
    $('div').trigger(e);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...