シンプルなDIVとキャプチャイベントを使用してHTMLコードエディタを開発しています。 iPadでこれを使うと、編集可能なフィールドには技術的にないので、キーボードがポップアップすることはありません。JavaScriptからiPhone/iPad/iPodキーボードを手動で起動する
私はkeybaordが必要であることをプログラムで教える方法はありますか?
シンプルなDIVとキャプチャイベントを使用してHTMLコードエディタを開発しています。 iPadでこれを使うと、編集可能なフィールドには技術的にないので、キーボードがポップアップすることはありません。JavaScriptからiPhone/iPad/iPodキーボードを手動で起動する
私はkeybaordが必要であることをプログラムで教える方法はありますか?
この質問への答えは、それが不可能なことを示唆している。同様のプロジェクトに取り組んでいた私の同僚は、彼のエディタのiPad版のためのテキストエリアを使用して終了Why doesn't @contenteditable work on the iPhone?
、とのcontentEditableのdiv /ためにまたがりますcontenteditableをサポートするブラウザおそらく、似たようなものがあなたのために働くでしょう。
私はコンテンツ編集可能性が全く違うと思っています。それはブラウザレベルで実装する必要があるものです。私は単にキーボードを表示させ、キープレスイベントをドキュメントに送信しようとしています。エディタは残りの部分を処理します。 –
prompt("Enter some value")
を呼び出すと、自分のiPad 2でキーボードがトリガーされることがわかりました。この状況があなたの状況に役立つかどうかわからない。
あなたのコードがユーザアクションによって開始されたものを介して実行される場合、それは機能します。
など。
この作品(キーボードをポップ):
<input type='text' id='foo'><div onclick='$("#foo").focus();'>click</div>
、これは動作しません(入力は国境が、ノーキーボードポップを取得します):
私のコードが「ユーザーアクションによって開始された」とみなされるかどうかをプログラムでテストする方法はありますか? – adamdport
はここにあなたのためのソリューションです:
<input id="my-input" type="text" />
<script type="text/javascript">
var textbox = document.getElementById('my-input');
textbox.select();
</script>
select()関数はキーボードを表示します。 – rakeshNS
select()関数はキーボードを表示しません! –
contentEditable divの上に透明なテキストエリアを配置します。ユーザーがテキストエリアにフォーカスすると、キーボードが開きます。
イベントのテキストエリアにevent listener
を登録し、テキストエリアのvisibility
をhidden
に設定します。これにより、カーソルの点滅が防止されます。
blur
イベントの発生後、テキストエリアのvisibility
をvisible
に戻します。
、keyup
、keypress
イベントの追加イベントリスナーを登録し、これらのイベントをcontentEditable divで処理するのと同じ方法で処理します。
それは質問に対する答えではありません。 OPは、iOSにjavascriptを使ってキーボードを開くように指示する方法を知りたがっています。 –
iOSデバイスでキーボードを表示させるには、input
やtextarea
などの編集可能な要素に焦点を当てる必要があります。さらに、要素は、と表示され、でなければならず、.focus()
関数は、マウスクリックなどのユーザー操作に応答して実行する必要があります。
事は - 私たちは入力要素が見えるようにしたくありません。 私はこれをある程度静かにしてしまい、最終的に私が探していた結果を得ました。
まず、あなたがキーボードを表示するために使用する要素を作成する - この場合はボタン、および非表示の入力要素を:(Working jsFiddleまたはTest on a mobile device)
<button id="openKeyboard">Open Keyboard</button>
<input id="hiddenInput" style="visibility: hidden;">
そして、次のJavaScriptを使用します。
をdocument.getElementById('openKeyboard').addEventListener('click', function(){
var inputElement = document.getElementById('hiddenInput');
inputElement.style.visibility = 'visible'; // unhide the input
inputElement.focus(); // focus on it so keyboard pops
inputElement.style.visibility = 'hidden'; // hide it again
});
注:
opacity
,height
、width
〜0
のように、入力にCSSを使用することができます。しかし、入力が完全に隠れている場合は、これは再び機能しませんので、padding
またはborder
のままにしておきます(不透明で表示されなくても)。これはまた、それを非表示にするためにdisplay:none
を使用すべきではないことを意味し、隠された要素は焦点を合わせることができません。keypress
、keyup
)を非表示の入力に使用すると、通常と同じようにユーザーの操作にアクセスできます。ここに特別なものはありません。
JSを使用してユーザーがiPadから来ているかどうかを検出することはできません。編集可能なDIVをテキストエリアに置き換えますか? – Pwnna