Javascriptを使用してHTMLで選択したテキストのインデックスを取得するにはどうすればよいですか? たとえば、HTML ファイルには、次のような段落があります。
私はインドに住んでいます。インドはとても美しい国です。
ここで、ユーザーがIndia
最初の文で選択すると が表示され、ユーザーが2 行目alert 5
を選択すると が表示されます。India
alert 6
ユーザーが選択した単語のインデックスを取得するにはどうすればよいですか?
Javascriptを使用してHTMLで選択したテキストのインデックスを取得するにはどうすればよいですか? たとえば、HTML ファイルには、次のような段落があります。
私はインドに住んでいます。インドはとても美しい国です。
ここで、ユーザーがIndia
最初の文で選択すると が表示され、ユーザーが2 行目alert 5
を選択すると が表示されます。India
alert 6
ユーザーが選択した単語のインデックスを取得するにはどうすればよいですか?
これは、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));
}
インデックスで文字列を検索する場合は、次を使用できます-
string.match(regularExpression)[index]
パラメータ値 -
正規表現= 必須。検索する値を正規表現で指定します。
index = 正規表現のインデックス。
これをオブジェクトと見なして、イベント ハンドラーを割り当てることができます。