は、私はiPhoneのWebアプリを書いている、と私は自動的にキーボードを育て、ページがロードされているテキストフィールドを集中したいです。通常のJavascript:iPhoneにHTMLテキストフィールドをフォーカスすると(キーボードが表示される)
input.focus();
は動作していないようです。何か案は?
は、私はiPhoneのWebアプリを書いている、と私は自動的にキーボードを育て、ページがロードされているテキストフィールドを集中したいです。通常のJavascript:iPhoneにHTMLテキストフィールドをフォーカスすると(キーボードが表示される)
input.focus();
は動作していないようです。何か案は?
注:この答えは古く、そこに新しいバージョンに関連していないかもしれない...
最後の投稿:
私は純粋なXHTML MPで私のアプリを開発しています/ Ecmascript MP/WCSS。だから、 ネイティブプラットフォームブラウザコントロールAPIを使用すると、本当に 私のためのオプションではありません。はい、あなたが言及する行動は私のものと同じです。私はwebkit.orgでBugzillaに彼の トピックを検索し、これが実際に 報告バグであることがわかりました。テキストボックスへのfocus()は要素を強調表示しますが、 はユーザーがテキストの入力を開始するためのキャラットを提供しません。 "[email protected]"で言及されているタイマーを使用することは役に立ちません。
この現象は は、WebKitのエンジンを使用するプラットフォーム(S60、iPhone、アンドロイド)に共通です。
だから今のように私はこの問題の解決策を参照してくださいいけません。
希望これは、それが唯一あなたがクリックイベントからフォーカスを発射する場合は、キーボードを表示し、そのフォーカスをして、それはキーボードが表示されますのonclickでページ上のボタンを配置します
私は似た問題を抱えていますが、問題は「touchend」イベントでは発生しません。
http://jsfiddle.net/milosdakic/FNVm5/
次のコードは、クローム/サファリなどに動作しますが、モバイルSafariで失敗します。それを有効にする唯一の方法は、イベントを「クリック」にすることですが、コードがiOSデバイス用に作られているのを見ると、タッチイベントで動作するのに役立ちます。
のWebkitエンジンのバグのようです。
これはworkroundです:
setTimeout(function(){
input.focus();
},500);//milliseconds
この回避策をiOS 6.0.1を実行しているiPad 2で動作させることができませんでした。 –
これは、Appleのセキュリティポリシーに関しては機能しません。 –
編集:は、もはや次は、iOS上で動作 - のUIWebViewは、オートフォーカスに使用オートフォーカス、ホーム画面のリンクを許可しましたが、彼らは無効に多くのバージョン前のこと。
autofocus
プロパティは、Mobile SafariでURLから動作しませんが、あなたがしている場合は動作しない(下記参照):
入力のフォントサイズは、iOS10がダブルタップでズームするのを避けるために十分な大きさでなければならず(画面が常に拡大表示されるようになりました)、画面サイズに合わせてページを設計する必要がありますズームのタイミング/競合のバグ、またはスクロール可能な場面は画面の中心にない場合があります)。
autofocus
:これを行うためのHTML5仕様は、autofocus property of the input tagです。しかし、iOSはこれを無視している。おそらく、ページにナビゲートするときにタッチキーボードをポップアップしないクリーンなUIがあると思われる。 Hereは、オートフォーカスプロパティを示すページです。 HTML5の前に、window.onloadイベントでelement.focus()を呼び出します。ただし、onclickイベントのハンドラ中以外は、focus()呼び出しはiOSではサポートされていません。
あなたの答えは若干の控えめなものです。 WkWebViewは入力フィールドにオートフォーカスをしません(セキュリティ上の理由で接続されています)。 –
少し遅れている可能性があります。あなたがフォーカスを設定している場合は、ページの読み込み(jQueryのモバイル環境)
フォーム入力がフォーカスを受け取る(CSSスタイルが適用されます)が、キーボードは開かない。 – guiniveretoo
で呼び出され
startFocusOnTextField: function() {
this.intervalIDForTextFieldFocus = window.setInterval(function() {
document.getElementById(page.textInputFieldObj.id).focus();
}, 150);
},
:私たちのWebアプリケーションはiOSのアプリ(6、より最近の)上で実行されている、我々は、設定された間隔でそれを行いますclickイベントから、preventDefaultする必要があります。それ以外の場合、clickイベントのデフォルトアクションは、クリックされたアイテムにフォーカスを設定します。
リンクはもはや動作しません。また、答えは何の情報も提供しません。 – eMarine