window方法:getSelection()

2020-08-25 10:01 更新

getSelection()方法

getSelection() 方法可以返回一个 Selection 对象,表示用户选择的文本范围或光标的当前位置。

getSelection() 方法语法

selection = window .getSelection();
  • selection 是一个 Selection 对象。 如果想要将 selection 转换为字符串,可通过连接一个空字符串("")或使用 String.toString() 方法。

getSelection()方法示例

function foo() {
    let selObj = window.getSelection(); 
    console.log(selObj);
    let selRange = selObj.getRangeAt(0);
    // 其他代码
}

笔记

在 JavaScript 中,当一个对象被传递给期望一个字符串(如:window.alert(),或document.write())的函数时,将调用该对象的 toString() 方法并将返回的值传递给该函数。当它与其他函数一起使用时,当它实际上是具有属性和方法的对象时,这可以使对象看起来像是一个字符串。

在上面的示例中,在将它传递给 window.alert() 时会自动调用 selObj.toString()。但是,如果没有该属性或方法,直接在 Selection 对象上尝试使用 JavaScript String 属性或方法(如 length 或 substr)将导致错误,如果有,则可能会返回意外结果。要将Selection对象用作字符串,请直接调用其 toString() 方法:

var selectedText = selObj.toString();
  • selObj是一个Selection对象。
  • selectedText 是一个字符串(选定的文本)。

相关对象

你还可以使用 Document.getSelection(),两个方法等价。

值得注意的是,目前在 Firefox, Edge (非 Chromium 版本) 及 Internet Explorer 中,getSelection() 对 <textarea> 及 <input> 元素不起作用。 HTMLInputElement.setSelectionRange() 或 selectionStart 及 selectionEnd 属性可用于解决此问题。

还要注意选择不同于焦点(详见 Selection 及输入焦点)。可使用 Document.activeElement 来返回当前的焦点元素.

规范

规范 状态 注释
Selection API 
该规范中'Window.getSelection()'的定义。
Working Draft
新规范
HTML编辑API 
该规范中“Window.getSelection()”的定义。
Editor's Draft
初步定义

浏览器兼容性



以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号