1

Javascriptを使用してHTMLで選択したテキストのインデックスを取得するにはどうすればよいですか? たとえば、HTML ファイルには、次のような段落があります。

私はインドに住んでいます。インドはとても美しい国です。

ここで、ユーザーがIndia最初の文で選択すると が表示され、ユーザーが2 行目alert 5を選択すると が表示されます。Indiaalert 6

ユーザーが選択した単語のインデックスを取得するにはどうすればよいですか?

4

2 に答える 2

3

これは、Rangy ライブラリの新しいTextRange モジュールで行うことができます。Rangy の Range オブジェクトにはとメソッドがあり、一度に 1 語ずつ範囲をどちらの方向にも拡張できます。moveStart()moveEnd()

ここにデモがあります: http://jsfiddle.net/timdown/ArMHy/

コード:

var sel = rangy.getSelection();
if (sel.rangeCount > 0) {
    var range = sel.getRangeAt(0);

    // Expand the range to contain the whole word
    range.expand("word");

    // Count all the preceding words in the document
    var precedingWordCount = 0;
    while (range.moveStart("word", -1)) {
        precedingWordCount++;
    }

    // Display results
    alert("Selection starts in word number " + (precedingWordCount + 1));        
}
于 2012-06-17T23:59:56.933 に答える
0

インデックスで文字列を検索する場合は、次を使用できます-

string.match(regularExpression)[index]

パラメータ値 -

正規表現= 必須。検索する値を正規表現で指定します。

index = 正規表現のインデックス。

これをオブジェクトと見なして、イベント ハンドラーを割り当てることができます。

于 2012-06-17T19:42:50.643 に答える