Показать клавиатуру для div с contenteditable = "true" в ios - PullRequest
2 голосов
/ 19 марта 2012

У меня есть div с contenteditable = "true". Как я могу установить фокус на этом div с помощью javascript (если это возможно на чистом js, без jquery)?

Ответы [ 3 ]

7 голосов
/ 04 декабря 2012

До iOS 6 это было невозможно, но, к счастью, они это изменили.Вы не можете сделать это вообще для веб-сайта, но если вы встраиваете UIWebView в свое приложение, вы можете сделать это сейчас:

UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
webView.keyboardDisplayRequiresUserAction = NO;

Тогда ваш element.focus() будет работать и выводить на экранклавиатура по желанию.

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIWebView_Class/Reference/Reference.html#//apple_ref/occ/instp/UIWebView/keyboardDisplayRequiresUserAction

Подробнее о том, что изменилось с iOS 6 и WebKit:

http://developer.apple.com/library/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html#//apple_ref/doc/uid/TP40012166-CH1-SW19

1 голос
/ 19 марта 2012

если предположить, что идентификатор contenteditable div равен 'editableDiv',

document.getElementById('editableDiv').focus();

** Обновления Не могли бы вы попробовать что-нибудь внутри div?

<script>
function showKeyboard() {
    document.getElementById('content').focus();
}
</script>
<body onLoad="showKeyboard()">
    <div id="content" contenteditable="true" height="1000">&nbsp;</div>  
</body>
0 голосов
/ 20 марта 2012

Это невозможно в iOS сейчас :( https://github.com/jquery/jquery-mobile/issues/3016

...