1

ユーザーがJavascriptを使用してhtmlページのテキストを選択したときを知りたいのですが。テキストは編集可能であってはなりません。イベントはタグにonselectのみ適用できるようです。いずれかのタグが無効になっている場合、イベントは発生しません。<textarea><input type="TEXT">

これらのタグでこれを回避する方法はありますか?

まったく異なるアプローチはありますか?

4

3 に答える 3

2

確かに、ここに例があります:http: //www.codetoad.com/javascript_get_selected_text.asp

ここに表示されている内容を使用して、イベントをドキュメント本文のクリック/リリースイベントにバインドし、選択範囲があるかどうか、および選択範囲の長さを確認して、テキストを選択したかどうかを判断できます。

StackOverflowアーカイブ:

  1. ユーザーがページ上のテキストを選択したときに発生するイベントは何ですか?
  2. Webページで選択したテキストの段落を取得するJavascript
于 2009-11-24T17:15:52.893 に答える
2

イベントをキャプチャし、mouseUpを使用してテキストが選択されているかどうかを確認できますwindow.getSelection()

ただし、この方法はブラウザ間の互換性がない場合があります ( window.getSelection())。

mouseUp編集:バインディングを使用したかなり完全な例を次に示します: http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html

于 2009-11-24T17:17:32.017 に答える
0

これは、クロスブラウザーの方法で行うのは簡単ではありません。IE では、selectイベントは本文テキストとフォーム入力にのみ適用されるため、必要なことは実行できますが、ユーザーがクロスブラウザーの方法で選択を行ったことを検出するには、keyupmouseupイベントの両方を処理する必要があります。それでも、[すべて選択] メニュー オプション (通常は [編集] および右クリックのコンテキスト メニューにあります) を使用するユーザーなどの選択イベントは検出されません。したがって、定期的にポーリングし、選択オブジェクトのプロパティをチェックする必要があります (IE 経由window.getSelection()またはdocument.selectionIE で取得)。

于 2009-11-24T17:34:57.567 に答える