0

jQueryで簡単にできるはずだと思うことを達成しようとしています。

ウェブサイトに長いテキストがあります。ユーザーがテキストを選択 (強調表示) するたびに、次の情報を取得する必要があります。

  • 選択が始まる段落
  • 選択が始まる段落内の文字
  • 選択の長さ
  • 選択範囲が終了する段落 (ハイライトが 1 段落を超える場合)
  • 選択が終了する段落の文字

よろしくお願いします;)

4

3 に答える 3

1

テキストの選択を処理するものには、JavaScript を使用する必要があります。jQuery には、選択範囲の開始位置または終了位置を検出する組み込み関数がありません。Rangy http://code.google.com/p/rangy/は、そのような目的に使用できるものです。

于 2011-08-10T08:32:27.953 に答える
1

以前に Stack Overflow でこれらすべてに回答したと思います。順番に:

  • getAncestor()from heregetSelectionBoundaryContainerElement()from hereの組み合わせが仕事をします
  • 「選択が始まる段落の文字」の意味によって異なります。段落が 1 つのテキスト ノードだけでなく、他の要素を内部に持つ可能性がある場合、これは少し注意が必要です。これを適応させることができます。
  • 繰り返しますが、これは「選択の長さ」の意味によって異なります。選択したテキストを文字列として取得し、その長さプロパティを使用できます。
  • 選択開始の回答を見る
  • 選択開始の回答を見る

これを行うには、API について少し調べる必要がありますが、これは悪いことではありません。

于 2011-08-10T12:57:16.697 に答える
0

遊んで

window.getSelection
document.getSelection
document.selection.createRange()

このサイトの例を参照してください:http://www.codetoad.com/javascript_get_selected_text.asp

于 2011-08-10T08:38:43.227 に答える