Window: getSelection() 方法
语法
js
getSelection()
参数
无。
返回值
示例
js
function foo() {
const selObj = window.getSelection();
alert(selObj);
const selRange = selObj.getRangeAt(0);
// do stuff with the range
}
说明
Selection 对象的字符串表示
在 JavaScript 中,当对象传递给期望字符串的函数(如 window.alert()
或 document.write()
)时,对象的 toString()
方法将被调用,并且返回的值将被传递给该函数。这可能会使对象在与其他函数一起使用时看起来像字符串,而实际上它是一个具有属性和方法的对象。
在上面的示例中,selObj.toString()
会在传递给 window.alert()
时自动调用。但是,如果尝试直接在 Selection
对象上使用 JavaScript String 属性或方法(如 length
或 substr
),如果它没有该属性或方法,则会导致错误,如果它有,则可能返回意外结果。要将 Selection
对象用作字符串,请直接调用其 toString()
方法
js
const selectedText = selObj.toString();
selObj
是一个Selection
对象。selectedText
是一个字符串(选定的文本)。
相关对象
你可以调用 Document.getSelection()
,它与 Window.getSelection()
工作方式相同。
值得注意的是,目前 getSelection()
无法在 Firefox 和 Edge(传统)中的 <textarea>
和 <input>
元素的内容上工作。可以使用 HTMLInputElement.setSelectionRange()
或 selectionStart
和 selectionEnd
属性来解决此问题。
还要注意选择和焦点之间的区别。 Document.activeElement
返回聚焦的元素。
规范
规范 |
---|
选择 API # dom-window-getselection |
浏览器兼容性
BCD 表仅在浏览器中加载