Javascript 操控选择文本

Querying Selected Text
查询选择的文本

引用
This is an area where little standardization exists, but it is possible to query the selected text in all modern browsers.


在这个方面,没有什么标准存在;但还是有可能读取用户选择的文本的:

function getSelectedText() {
    if (window.getSelection) {
        // This technique is the most likely to be standardized.
        // getSelection() returns a Selection object, which we do not document.
        return window.getSelection().toString();
    }
    else if (document.getSelection) {
        // This is an older, simpler technique that returns a string
        return document.getSelection();
    }
    else if (document.selection) {
        // This is the IE-specific technique.
        // We do not document the IE selection property or TextRange objects.
        return document.selection.createRange().text;
    }
}


The Selection and TextRange objects
Selection和TextRange对象

引用
The getSelection() methods of the Window and Document object do not return selected text if it is within an <input> or <textarea> form element: they only return text selected from the body of the document itself.
The IE document.selection property, on the other hand, returns selected text from anywhere in the document.


getSelection()方法是无法返回输入框或文本域中的内容的,它只能返回文档本身的文字内容。
但是IE独有的document.selection属性倒是哪里的内容都可以访问到。

function getTextFieldSelection(e) {
     if (e.selectionStart != undefined && e.selectionEnd != undefined) {
         var start = e.selectionStart;
         var end = e.selectionEnd;
         return e.value.substring(start, end);
     }
     else return "";  // Not supported on this browser
}


很多网上划词的功能都是建立在这些方法上的,值得学习~

你可能感兴趣的:(JavaScript,IE)