獲取使用者選中的文字內容

2022-07-01 10:03:11 字數 2875 閱讀 8781

在平時閱讀文章的時候,經常會碰到喜歡的文字段落,想要複製或者轉達,今天就要來模擬乙個獲取使用者選中文的文字的展示效果,具體如下:

使用者選中一段文字後,獲取到使用者選中的文字,並展示出來,我們先來分析一下實現思路。

首先是要實現基本的結果,來展示文字和放置選中文字的容器。

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>

title

>

<

style

>*p

#share

style

>

head

>

<

body

>

<

p id

="word"

>全棧工程師的溝通成本幾乎為零,因為各種技術都懂,胸有成竹,自己就全做了。即使是在團隊協作中,與不同技術人員的溝通也會容易得多,讓乙個後端和乙個前端去溝通,那完全是雞同鴨講,更不用說設計師與後端了。但如果有乙個人懂產品懂設計懂前端懂後端,那溝通的結果顯然不一樣,因為他們講的,彼此都能聽得懂。

p>

<

div

id="share"

>

div>

body

>

html

>

在上面我們,我們生成了一段文字,並寫了乙個用來存在選中文字的容器#share,因為需要根據選中文字時滑鼠最後的位置來確定顯示文字的位置,並且在沒有選中文字時不顯示,所以給了該容器乙個定位,並且預設新增隱藏屬性。

接下來就是獲取選中的文字了並展示了。

<

script

>

window.onload

=function

()

//監聽滑鼠抬起$("

word

").onmouseup

=function

(event)

else

if(selectedtext

!==""

)

}}script

>

要獲取選中文字,就需要用到window.getselection(),選中時滑鼠按下,當選中結束時滑鼠才抬起,所以需要監聽滑鼠的抬起事件;這裡是為了展示選中的內容,所以只有當選中的內容不為空時展示容器才顯示,這也是為了區分滑鼠點選其他地方後抬起的事件。

既然要展示,就也會有隱藏,當滑鼠點選任何非展示容器的地方時,都應該隱藏展示容器。

<

script

>

//監聽文件的點選

document.onmousedown

=function

(event)

}script

>

現在,基本功能已經實現了,我們也可以自己根據需求將**稍作修改,換成分享按鈕等等,但是需要注意的乙個問題是,既然是要選中文字,就要避免拖拽選中事件的發生,所以我們還需要對上面的**進行優化,具體的如下:

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>

title

>

<

style

>*p

#share

style

>

head

>

<

body

>

<

p id

="word"

>全棧工程師的溝通成本幾乎為零,因為各種技術都懂,胸有成竹,自己就全做了。即使是在團隊協作中,與不同技術人員的溝通也會容易得多,讓乙個後端和乙個前端去溝通,那完全是雞同鴨講,更不用說設計師與後端了。但如果有乙個人懂產品懂設計懂前端懂後端,那溝通的結果顯然不一樣,因為他們講的,彼此都能聽得懂。

p>

<

div

id="share"

>

div>

<

script

>

window.onload

=function

()

//監聽滑鼠抬起$("

word

").onmouseup

=function

(event)

else

if(selectedtext

!==""

)

};//監聽文件的點選

document.onmousedown

=function

(event)

window.getselection

?window.getselection().removeallranges() : document.selection.empty();}}

script

>

body

>

html

>

獲取瀏覽器中滑鼠選中的文字內容

如果你在瀏覽器中安裝了翻譯外掛程式的話,控制台可能會輸出你選中的文字內容,那麼這是如何做到的呢?直接檢視他的原始碼,主要是使用了window.getselection這個屬性 所以我們也可以仿照著寫乙個函式,用來監聽滑鼠雙擊,或者滑鼠抬起事件 監聽雙擊事件document.addeventliste...

BOM Range物件文字內容選中

最初是因為textarea賦值後,focus游標一直定位到第乙個文字的bug,搜之,發現有這樣乙個api htmlinputelement.setselectionrange,可以設定乙個input元素中的文字選中內容的起始位置和結束位置。inputelement.setselectionrange...

獲取使用者的ip位址

程式處理中使用了方法 request.getremoteaddr 來獲取使用者的ip位址,但是這個ip位址容易被欺騙.並且在通過了apache,squid等反向 軟體就不能獲取到客戶端的真實ip位址了。或者內網服務就在域控機器上,由於安裝了域控,拓撲結構發生變化,這時這個方法獲取的ip都為伺服器自身...