选择和getSelection。我应该使用哪个对象?

时间:2015-09-29 08:43:06

标签: javascript

在javascript中有两个名为selection和getSelection的对象。现在“选择”有很多属性和方法。例如方法toString,Modify等。

我遇到的问题是我应该使用哪两个版本,对象选择还是getSelection?

caniuse.com中没有信息

3 个答案:

答案 0 :(得分:2)

试试这个--------------------

<!DOCTYPE html>
<html>
<head>
    <meta charset=utf-8 />
    <title>JS Bin</title>
    <script>

        function SelectText() {
            var input = document.getElementById("mytextbox");
            input.focus();
            input.setSelectionRange(2, 5);

            var selObj = Window.toString();
            //window.getselection returs the object of current selection
            alert(selObj);

        }
    </script>
</head>
<body>
    <p><input type="text" id="mytextbox" size="20" value="getselection" /></p>
    <p><button onclick="SelectText()">Select text</button></p>
</body>
</html>

答案 1 :(得分:1)

这些不是一回事:getSelection将页面上的当前选择作为Selection的实例返回。由于getSelection返回的对象是Selection的实例,因此它将继承其所有方法和属性(包括toString,modify等)。因此,要回答您的问题,您必须getSelection来获取,设置和修改页面上的选择。

一些文档here on MDN

答案 2 :(得分:0)

Try this .. you may get an idea about  version support and getselection

<head>
    <script type="text/javascript">
        function GetSelectedText() {
            var selText = "";
            if (window.getSelection) {
                //   Supports all browsers, except IE before version 9
                if (document.activeElement &&
                        (document.activeElement.tagName.toLowerCase() == "textarea" ||
                         document.activeElement.tagName.toLowerCase() == "input")) {
                    var text = document.activeElement.value;
                    selText = text.substring(document.activeElement.selectionStart,
                                              document.activeElement.selectionEnd);
                }
                else {
                    var selRange = window.getSelection();
                    selText = selRange.toString();
                }
            }
            else {
                if (document.selection.createRange) { 
// for  Internet Explorer
                    var range = document.selection.createRange();
                    selText = range.text;
                }
            }
            if (selText !== "") {
                alert(selText);
            }
        }
    </script>
</head>
<body onmouseup="GetSelectedText ()">
    Some text for selection.
    <br /><br />
    <textarea>Some text in a textarea element.</textarea>
    <input type="text" value="Some text in an input field." size="40" />
    <br /><br />
    Select some content on this page!
</body>