2011-07-18 6 views
11

Mam div, który działa jako pole tekstowe za pośrednictwem niektórych sprytny javascript. Tak, to pachnie, ale to kod dostawcy, którego nie mogę zmienić :(Otwórz klawiaturę iPada przez JavaScript w polu nietekstowym?

Na iPadzie klawiatura nie jest wyświetlana, ponieważ nie jest polem tekstowym. Czy istnieje sposób na otwarcie klawiatury za pomocą javascript lub udekoruj kod HTML czymś, co mówi Safari "Tak, to jest naprawdę pole tekstowe, po prostu mi ufaj!"?

+0

Nie sądzę, że to możliwe Obawiam się ... istnieje wiele osób zadaje to samo pytanie: http://www.google.co .uk/search? sourceid = chrome & ie = UTF-8 & q = javascript + open + ipad + keyboard –

+0

Jeśli możesz wpłynąć na stronę z javascript, możesz stworzyć pole tekstowe, które zastąpi div ... –

+0

@Charles True, but then Musiałbym również dodać całą logikę JavaScript, którą dostawca ma na swoim miejscu. Mogę to zrobić, ale jeśli istnieje sposób, aby tego uniknąć, byłoby świetnie –

Odpowiedz

10

Z mojego doświadczenia wynika, że ​​nie ma sposobu na podniesienie klawiatury iPada lub iPhone'a przez JavaScript. Obejście problemu, które może być użyteczne:

Po prostu umieszczam pole tekstowe z jego kryciem ustawionym na 0 względem danego elementu div, a następnie aktualizuję element div z treścią pola tekstowego podczas zmiany

jak tak (przy użyciu 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 

Jeśli kod sprzedawca polegać-tych zdarzeniach na klawiaturze lub myszy słuchaczy zrobić to magia, można proxy wszystkie typy zdarzeń na div poniżej.

Coś tak (przy użyciu jQuery)

$('textarea').bind('keyup keydown keypress mouseup mousedown click', function(e) { 
    e.currentTarget = $('div').get(0); 
    $('div').trigger(e); 
}); 
Powiązane problemy