codecamp

window方法:getSelection()

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
初步定义

浏览器兼容性



window方法:getDefaultComputedStyle()
window方法:matchMedia()
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Fetch API官方文档指南

Fetch API方法

WindowOrWorkerGlobalScope执行者:window

window属性

WindowOrWorkerGlobalScope执行者:WorkerGlobalScope

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }