真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用JavaScript讀取所選文本并將其復(fù)制到剪貼板

詢問大多數(shù)開發(fā)人員如何將用戶選擇的內(nèi)容復(fù)制到剪貼板,他們會提到Flash的需求(因此 Zeroclipboard等腳本的流行 )。然而,這種想法的調(diào)整現(xiàn)在歸功于最近瀏覽器對JavaScript中關(guān)鍵技術(shù)的支持的改進,這使得復(fù)制到剪貼板本身成為可能。這種JavaScript方法在IE9 +,F(xiàn)irefox 41+和Chrome 42+中得到支持,最終為瀏覽器本身帶來了原生剪切/復(fù)制支持。在本教程中,我們將看到如何閱讀用戶選擇的文本內(nèi)容,動態(tài)選擇頁面上的一些文本,最后但并非最不重要的是,將所選內(nèi)容復(fù)制到剪貼板,所有這些都只使用JavaScript。我們現(xiàn)在正進入無Flash區(qū)域! document.execCommand()

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、大余ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的大余網(wǎng)站制作公司

檢索用戶選擇的文本內(nèi)容

讓我們從頂部開始,檢索用戶在頁面上選擇的內(nèi)容,直到任何文本內(nèi)容。為此,我們使用了所有現(xiàn)代瀏覽器和IE9 +支持的方法 : window.getSelection()

1

2

3

4

6

7

"vertical-align: inherit;">"vertical-align: inherit;">function getSelectionText(){"vertical-align: inherit;">"vertical-align: inherit;">

    var selectedText =“”"vertical-align: inherit;">"vertical-align: inherit;">

    if(window.getSelection){//所有現(xiàn)代瀏覽器和IE9 +

        selectedText = window.getSelection()。toString()"vertical-align: inherit;">"vertical-align: inherit;">

    }"vertical-align: inherit;">"vertical-align: inherit;">

    返回selectedText"vertical-align: inherit;">"vertical-align: inherit;">

}

window.getSelection()返回頁面上當前選定的文本,并返回包含該數(shù)據(jù)的對象。要檢索實際文本,我們使用它將其轉(zhuǎn)換為字符串。以下示例在用戶將鼠標懸停在文檔上時調(diào)用我們的函數(shù),以便查看用戶選擇的內(nèi)容(如果有): SelectiontoString()getSelectionText()

1

2

3

4

6

"vertical-align: inherit;">"vertical-align: inherit;">document.addEventListener('mouseup'function(){"vertical-align: inherit;">"vertical-align: inherit;">

    var thetext = getSelectionText()"vertical-align: inherit;">"vertical-align: inherit;">

    if(thetext.length> 0){//檢查是否選擇了一些文本

        console.log(thetext)//記錄用戶在頁面上選擇的任何文本內(nèi)容

    }"vertical-align: inherit;">"vertical-align: inherit;">

},false

我們首先檢查是否選擇了一些文本,就像用戶只是單擊頁面一樣,沒有。

選擇并讀取頁面上非表單元素的文本內(nèi)容

繼續(xù)前進,我們還可以負責(zé)并動態(tài)選擇然后在頁面上檢索我們想要的內(nèi)容,而不是簡單地檢索用戶選擇的內(nèi)容,例如特定DIV的內(nèi)容。這與簡單地使用元素innerHTML innerText屬性來獲取其內(nèi)容非常不同; 我們希望 通過JavaScript 實際選擇該內(nèi)容,這會打開其他可能的操作,例如將其復(fù)制到用戶的剪貼板。

要選擇表單字段元素的文本內(nèi)容,我們首先創(chuàng)建一個新的 Range對象并將其設(shè)置為包含所需的元素。然后,將范圍添加到Selection對象以實際選擇它。讓我們看看它是如何工作的,這個函數(shù)根據(jù)傳入元素的元素動態(tài)選擇元素的文本內(nèi)容:

1

2

3

4

6

7

"vertical-align: inherit;">"vertical-align: inherit;">function selectElementText(el){"vertical-align: inherit;">"vertical-align: inherit;">

    var range = document.createRange()//創(chuàng)建新的范圍對象

    range.selectNodeContents(el)//設(shè)置范圍以包含所需的元素文本

    var selection = window.getSelection()//從當前用戶選擇的文本中獲取Selection對象

    selection.removeAllRanges()//取消選擇任何用戶選擇的文本(如果有)

    selection.addRange(range)//為Selection對象添加范圍以選擇它

}

要創(chuàng)建一個用于添加范圍的對象,我們使用; 因為默認情況下此方法會返回用戶選擇的文本(如果有的話),所以我們會立即調(diào)用其方法來清除平板。然后,我們開始創(chuàng)建一個空白范圍,將元素的內(nèi)容歸零以選擇使用,然后將該范圍添加到對象中以進行選擇。 Selection window.getSelection()removeAllRanges() range.selectNodeContents() Selection

一旦我們選擇了我們想要閱讀的文本,我們就轉(zhuǎn)向我們之前的getSelectionText()方法來讀取所選元素的內(nèi)容,例如:

演示:

“我的媽媽總是說,'生活就像一盒巧克力。你永遠不會知道你會得到什么。'” - Forrest

選擇并檢索文本

代碼:

1

2

3

4

"vertical-align: inherit;">"vertical-align: inherit;">var para = document.getElementById('para'"vertical-align: inherit;">"vertical-align: inherit;">

selectElementText(para)//選擇我們希望閱讀的元素文本

var paratext = getSelectionText()//讀取用戶選擇

alert(paratext)//提醒“我的媽媽總是說...”

選擇和讀取表單元素的內(nèi)容,如INPUT文本或TEXTAREA

為了選擇和讀取表格相關(guān)的字段值,例如INPUT文本和TEXTAREA,該過程不同于選擇常規(guī)文本。我們大多數(shù)人已經(jīng)知道選擇表單字段的整個值,我們可以使用 inputElement.select()*,并檢索該值,探測 inputElement.value。但是,還可以通過編程方式選擇字段值的一部分并獲取該值。讓我們看看如何做到這一點。

- 以編程方式選擇字段值的一部分

要動態(tài)選擇INPUT文本或TEXTAREA元素的一部分,請使用此字段指示所需選擇的起始和結(jié)束索引: formElement.setSelectionRange()

1

2

3

4

"vertical-align: inherit;">"vertical-align: inherit;">var emailfield = document.getElementById(“email”)"vertical-align: inherit;">"vertical-align: inherit;">

emailfield.focus()//在setSelectionRange()工作之前,這在大多數(shù)瀏覽器中都是必需的

emailfield.setSelectionRange(0,5)//選擇輸入字段的前5個字符

emailfield.setSelectionRange(5,emailfield.value.length)//選擇輸入字段的第5個到最后一個字符

請注意,第二個參數(shù) formElement.setSelectionRange()應(yīng)該是要選擇的結(jié)束字符的索引加1,因此要選擇表單字段的前5個字符,要輸入的結(jié)束索引值應(yīng)為5或4(第5個字符的索引) )加1。

演示:

選擇前5個字符   選擇第5個到最后一個字符

*注意: 在iOS設(shè)備中(從iOS9開始),使用inputElement.select()快速選擇所有表單元素的內(nèi)容似乎不起作用。但是,使用inputElement.setSelectionRange()確實。因此,以下選擇跨瀏覽器和設(shè)備的所有表單字段的文本:

inputElement.setSelectionRange(0, inputElement.value.length)

- 讀取字段值的選定部分

無論如何選擇表單字段的值的一部分,無論是通過使用setSelectionRange()動態(tài)選擇該部分,還是用戶拖動他/她的鼠標來進行用戶定義的選擇,檢索選擇的方法是獲取指數(shù)選擇的開始和結(jié)束字符,然后使用它們從表單字段的值中提取該部分。我們可以使用以下方法獲取活動選擇的索引:

  • formElement.selectionStart:所選文本的第一個字符的索引。如果未選擇任何文本,則它包含輸入光標后面的字符的索引。

  • formElement.selectionEnd:所選文本的最后一個字符的索引。如果未選擇任何文本,則它包含輸入光標后面的字符的索引。

上述屬性對于從表單字段中獲取任何用戶選定文本特別有用,其中選擇的索引尚不為人所知。以下演示回應(yīng)了用戶使用以下屬性從TEXTAREA中選擇的內(nèi)容:

演示(在textarea中選擇一些文本):

輸出:

代碼:

1

2

3

4

6

7

8

9

10

11

12

13

14

15

16

17

18

"vertical-align: inherit;">"vertical-align: inherit;">