ユーザーが要素をクリック/タッチできるようにすることで、すべてのモバイルWebブラウザー(Android、iOS、およびWindows Phone)でテキストを「コピーアンドペースト」するプロセスを高速化しようとしています。その要素内のテキスト。
✔何をしたいのか:
- 入力要素と「すべて選択」テキストをクリックします。
- ハイライトされたテキストを押し続けると、「コピーまたは切り取り」のネイティブオプションが表示されます。
試行1: http: //jsfiddle.net/w3R6u/2/
HTML
<input type="text" value="This text will be selected when you click in this input" />
JQUERY
$("input").click(function () {
window.document.execCommand('SelectAll', true);
});
..
試行2: http: //jsfiddle.net/w3R6u/4/
HTML
<input type="text" value="This text will be selected when you click in this input" />
JQUERY
$("input").click(function () {
this.selectionStart=0;
this.selectionEnd=this.value.length;
return false;
});
✖実際に起こっていること:
- 入力要素と「すべて選択」テキストをクリックします。(正しい)
- ハイライトされたテキストを押し続けると、「単語を選択」と「すべて選択」のネイティブオプションが表示されます。(正しくない)
上記の2つの試みは、神が自然に意図したように(ステップ1)実行されます。そうです...しかし、Androidデバイスでのテストでは、要素を「押し続ける」(ステップ2)と、 「単語を選択」または「すべて選択」をユーザーに促します。テキストがすでに選択されているという事実を完全に無視します。適切な方法は、テキストがすでに選択されているため、ユーザーのネイティブの「コピー」または「カット」オプションを表示することです。
この問題が存在する理由とその修正方法を知っている人はいますか?
。。
▼失敗した試み
私の最初の試みはもちろん、「コピーアンドペースト」のJavaScriptソリューションを見つけることでした。W3.orgはClipboardAPIとイベント(2013年2月)に取り組んでいますが、これは進行中の作業にすぎません。getDataメソッドとsetDataメソッドを使用でき、IEで機能しますが、それは役に立ちません。
これらは「 ZeroClipBoard」や「zClip 」のようなフラッシュの回避策ですが、携帯電話にフラッシュがインストールされていないため、これらも機能しません。
このStackOverflowの質問のガイドラインに従う:iPhoneのモバイルSafariでテキストを選択する