如何在javascript中选择未选择的文本和选定的文本?

时间:2014-10-14 18:46:38

标签: javascript jquery

我正在开发一个应用程序,它需要选择下一行以及所选行。

以下代码用于文本选择

function getSelectedText() {
        var text = "";
        if (typeof window.getSelection != "undefined") {
            text = window.getSelection().toString();
        } else if (typeof document.selection != "undefined" && document.selection.type == "Text") {
            text = document.selection.createRange().text;
        }

        //        alert('text = ' + text);
        return text;
    }

如何在javascript中选择下一行文字以及所选行?

1 个答案:

答案 0 :(得分:1)

这可能有助于您了解如何实现这一目标:

HTML:

<body>

<pre>  
     Hahahaa. Jacko. Superman. Hulk.
     </pre>



 </body>

使用JQuery的Javascript:

function getSelectionTextWithNext() {
    var text = "";

    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }
    var preText = $("pre").text();
    var theBeginningTextIndex = preText.indexOf(text) + text.length;
    var preTextIndex = preText.indexOf('.', theBeginningTextIndex);
    var nextSentence = preText.substring(preText.indexOf(text), preTextIndex + 1);
    console.log(nextSentence);

    return nextSentence;
}
$(document).ready(function (){
   $('pre').mouseup(function (e){
       getSelectionTextWithNext();
   })
});

现场演示:

http://jsfiddle.net/BQSJ3/317/

样本会找到“。”作为句子结尾的标记。 样本也可能是错误的,但希望它能为您提供想法。

伪代码:

  
      
  1. 获取选择文字。
  2.   
  3. 浏览html元素中包含的原始文本,并使用自定义逻辑来获取下一个句子。 (在这个例子中,“。”是   句子结尾的标记)。
  4.   

FYI, 发布的代码是

的扩展版本
http://jsfiddle.net/abdennour/BQSJ3/6/

致敬原始创作者。

希望它有所帮助。 感谢