【问题标题】:Index of selected words using Javascript使用 Javascript 的选定单词索引
【发布时间】:2012-06-17 19:03:34
【问题描述】:

如何使用 Javascript 获取 HTML 中选定文本的索引? 例如,在 HTML 文件中,有如下段落:

我住在印度。印度是一个非常美丽的国家。

现在如果用户在第一句中选择India,那么应该有一个alert 5,如果用户在第二行选择India,那么就会有一个alert 6

如何获取用户选择的单词的索引?

【问题讨论】:

  • 您能否提供您编写但不起作用的任何示例代码?这样我们可以更轻松地为您提供帮助此外,一旦您获得所选内容,计算您选择的单词之前的单词并不难
  • 我很确定它不能完成。当然,这并不容易。
  • 有可能!即使这个其他问题没有给你答案,它可能会有所帮助:stackoverflow.com/questions/5176761/get-selected-text-position
  • @gdoron:可以做到。 jsfiddle.net/timdown/ArMHy

标签: javascript html selection


【解决方案1】:

您可以使用我的Rangy library 的新TextRange module 来做到这一点。 Rangy 的 Range 对象具有 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));        
}

【讨论】:

  • 你好,我应该在我的 iphone 项目中使用这个代码需要什么库
【解决方案2】:

如果要通过索引查找字符串,可以使用-

string.match(regularExpression)[index]

参数值-

regularExpression = 必需。要搜索的值,作为正则表达式。

index = 正则表达式的索引。

现在您可以将其视为一个对象并为其分配事件处理程序。

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 2019-09-29
    • 2012-01-10
    • 2013-09-06
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多