如何在textarea中获取选定的文本?

这个问题在这里已经有了答案:

  • 如何使用JavaScript 5的答案从文本框控件中获取选定的文本

  • 试试jquery-fieldselection插件。

    你可以在这里下载。 也有一个例子。


    使用Firefox获取<textarea>的选定内容:

    function getSel() // javascript
    {
        // obtain the object reference for the <textarea>
        var txtarea = document.getElementById("mytextarea");
        // obtain the index of the first selected character
        var start = txtarea.selectionStart;
        // obtain the index of the last selected character
        var finish = txtarea.selectionEnd;
        // obtain the selected text
        var sel = txtarea.value.substring(start, finish);
        // do something with the selected content
    }
    

    window.getSelection().toString()适用于Chrome,但不适用于Firefox。

    参考:

  • textarea的
  • 文件

  • 处理选择对于不同的浏览器是不同的:

    var userSelection;
    if (window.getSelection) {
        userSelection = window.getSelection();
    }
    else if (document.selection) { // Opera
        userSelection = document.selection.createRange();
    }
    

    这给你一个范围对象。 每个范围表示一个选择(使用控制/命令键可以进行多个活动选择)。

    您现在拥有的范围对象的类型取决于哪个浏览器。 对于IE来说,它是一个文本范围对象; 对其他人来说它是一个Selection对象。 要将Selection对象转换为文本范围,可以调用getRangeAt; 对于Safari,您需要构建:

    var range;
    if (userSelection.getRangeAt)
        range = userSelection.getRangeAt(0);
    else { // Safari
        range = document.createRange();
        range.setStart(userSelection .anchorNode, userSelection.anchorOffset);
        range.setEnd(userSelection.focusNode, userSelection.focusOffset);
    }
    

    范围对象为您提供选择的开始和结束dom元素和文本偏移量。

    有关范围对象的更多信息可以在quirksmode.org上找到

    如果您使用的是jQuery,您可能需要查看Batiste Bieler提供的轻量级jQuery RTE插件。 它可能足以满足您的需求,或者至少可以为您提供一些开始。

    链接地址: http://www.djcxy.com/p/41625.html

    上一篇: How to get selected text in textarea?

    下一篇: Why do people use jQuery for basic operations?