W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
getSelection() 方法可以返回一個(gè) Selection 對(duì)象,表示用戶(hù)選擇的文本范圍或光標(biāo)的當(dāng)前位置。
selection = window .getSelection();
function foo() {
let selObj = window.getSelection();
console.log(selObj);
let selRange = selObj.getRangeAt(0);
// 其他代碼
}
在 JavaScript 中,當(dāng)一個(gè)對(duì)象被傳遞給期望一個(gè)字符串(如:window.alert(),或document.write())的函數(shù)時(shí),將調(diào)用該對(duì)象的 toString() 方法并將返回的值傳遞給該函數(shù)。當(dāng)它與其他函數(shù)一起使用時(shí),當(dāng)它實(shí)際上是具有屬性和方法的對(duì)象時(shí),這可以使對(duì)象看起來(lái)像是一個(gè)字符串。
在上面的示例中,在將它傳遞給 window.alert() 時(shí)會(huì)自動(dòng)調(diào)用 selObj.toString()。但是,如果沒(méi)有該屬性或方法,直接在 Selection 對(duì)象上嘗試使用 JavaScript String 屬性或方法(如 length 或 substr)將導(dǎo)致錯(cuò)誤,如果有,則可能會(huì)返回意外結(jié)果。要將Selection對(duì)象用作字符串,請(qǐng)直接調(diào)用其 toString() 方法:
var selectedText = selObj.toString();
你還可以使用 Document.getSelection(),兩個(gè)方法等價(jià)。
值得注意的是,目前在 Firefox, Edge (非 Chromium 版本) 及 Internet Explorer 中,getSelection() 對(duì) <textarea> 及 <input> 元素不起作用。 HTMLInputElement.setSelectionRange() 或 selectionStart 及 selectionEnd 屬性可用于解決此問(wèn)題。
還要注意選擇不同于焦點(diǎn)(詳見(jiàn) Selection 及輸入焦點(diǎn))??墒褂?Document.activeElement 來(lái)返回當(dāng)前的焦點(diǎn)元素.
規(guī)范 | 狀態(tài) | 注釋 |
---|---|---|
Selection API
該規(guī)范中'Window.getSelection()'的定義。
|
Working Draft
|
新規(guī)范 |
HTML編輯API
該規(guī)范中“Window.getSelection()”的定義。
|
Editor's Draft
|
初步定義 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: