window方法:getSelection()

2020-08-25 10:01 更新

getSelection()方法

getSelection() 方法可以返回一個(gè) Selection 對(duì)象,表示用戶(hù)選擇的文本范圍或光標(biāo)的當(dāng)前位置。

getSelection() 方法語(yǔ)法

selection = window .getSelection();
  • selection 是一個(gè) Selection 對(duì)象。 如果想要將 selection 轉(zhuǎn)換為字符串,可通過(guò)連接一個(gè)空字符串("")或使用 String.toString() 方法。

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();
  • selObj是一個(gè)Selection對(duì)象。
  • selectedText 是一個(gè)字符串(選定的文本)。

相關(guān)對(duì)象

你還可以使用 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ī)范

規(guī)范 狀態(tài) 注釋
Selection API 
該規(guī)范中'Window.getSelection()'的定義。
Working Draft
新規(guī)范
HTML編輯API 
該規(guī)范中“Window.getSelection()”的定義。
Editor's Draft
初步定義

瀏覽器兼容性



以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)