JavaScript を使用して TextBox 内のテキスト選択を保持するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-24 09:26:02
オリジナル
902 人が閲覧しました

How Can I Preserve Text Selection in a TextBox Using JavaScript?

JavaScript を使用してテキストボックス内のテキスト選択を保持する方法

テキストボックスを操作する場合、対話中にユーザーが選択したテキストを保持するのは困難な場合があります特に Internet Explorer でのタスク。この記事では、この問題に対する包括的な解決策を提供し、他のコントロールをクリックしたり、テキスト ボックスから移動した後でも、選択したテキストがそのまま残るようにします。

問題の理解

デフォルトでは、ユーザーがテキストボックス内のテキストを選択し、その境界の外側をクリックすると、選択内容が失われます。この動作は、選択内容を保持したいユーザーにとってイライラする可能性があります。

解決策

解決策は、JavaScript を使用して、選択内容が失われる前に選択したテキストをキャプチャすることです。 。これには、一連のイベント ハンドラーと互換性チェックを使用してブラウザを決定し、適切なコードを実装することが含まれます。

次のコード スニペットは、テキスト ボックスから選択されたテキストを取得する JavaScript 関数 ShowSelection を提供します。

<code class="javascript">function ShowSelection() {
  var textComponent = document.getElementById('Editor');
  var selectedText;

  // Standards-compliant (non-IE)
  if (textComponent.selectionStart !== undefined) {
    var startPos = textComponent.selectionStart;
    var endPos = textComponent.selectionEnd;
    selectedText = textComponent.value.substring(startPos, endPos);
  }

  // Internet Explorer (IE6 and below)
  else if (document.selection !== undefined) {
    textComponent.focus();
    var sel = document.selection.createRange();
    selectedText = sel.text;
  }

  alert("You selected: " + selectedText);
}</code>
ログイン後にコピー

実装

このソリューションを実装するには、ボタン (または他のコントロール) を作成し、それに ShowSelection 関数を呼び出すイベント リスナーを割り当てます。例:

<code class="html"><button type="button" onclick="ShowSelection()">Show Selected Text</button></code>
ログイン後にコピー

追加の考慮事項

Internet Explorer 6 では、選択内容が確実に保持されるように、クリック イベントの代わりに onKeyDown イベントを使用する必要があります。 。ただし、この解決策は、li タグを使用して描画されたボタンでは機能しません。

結論

この手法は、テキスト ボックスから選択したテキストをキャプチャして保存する信頼性の高い方法を提供します。異なるブラウザーや Internet Explorer のバージョン間でも同様です。適切なイベント ハンドラーと互換性チェックを使用することにより、開発者は、ページとの対話を通じてユーザーの選択が確実に維持されるようにすることができます。

以上がJavaScript を使用して TextBox 内のテキスト選択を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!