Window.getSelection - Web API 接口参考 编辑

返回一个 Selection 对象,表示用户选择的文本范围或光标的当前位置。

语法

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

示例

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

备注

在  JavaScript中,当一个对象被传递给期望字符串作为参数的函数中时(如 window.alertdocument.write),对象的toString()方法会被调用,然后将返回值传给该函数。

在上例中,selObj.toString() 会在传递到 window.alert()时自动调用。然而,当你试图在 Selection 对象上使用一个 JavaScript 的String 对象上的属性或者方法时(如 String.prototype.length 或者 String.prototype.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 来返回当前的焦点元素.

    浏览器兼容性

    BCD tables only load in the browser

    此页上的兼容性表是从结构化数据生成的。如果您想贡献数据,请访问 https://github.com/mdn/browser-compat-data 并向我们发送一个请求。

    相关链接

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
    列表为空,暂无数据

    词条统计

    浏览:52 次

    字数:5262

    最后编辑:7 年前

    编辑次数:0 次

      我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
      原文