第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何突出顯示DOM Range對象的文本?

如何突出顯示DOM Range對象的文本?

瀟湘沐 2019-10-11 10:14:01
我使用鼠標在html頁面(在firefox中打開)上選擇一些文本,并使用javascript函數(shù)創(chuàng)建/獲取與所選文本相對應(yīng)的rangeobject。 userSelection =window.getSelection();  var rangeObject = getRangeObject(userSelection);現(xiàn)在我要突出顯示rangeobject下的所有文本。  var span = document.createElement("span");  rangeObject.surroundContents(span);  span.style.backgroundColor = "yellow";好吧,這僅在rangeobject(起點和終點)位于同一textnode時才有效,然后突出顯示相應(yīng)的文本。    <p>In this case,the text selected will be highlighted properly,       because the selected text lies under a single textnode</p>但是,如果range對象覆蓋多個文本節(jié)點,則它不能正常工作,它僅突出顯示第一個textnode中的文本,例如 <p><h3>In this case</h3>, only the text inside the header(h3)   will be highlighted, not any text outside the header</p> 我不知道如何確定范圍對象下的所有文本,突出顯示范圍范圍是單個節(jié)點還是多個節(jié)點?謝謝....
查看完整描述

3 回答

?
12345678_0001

TA貢獻1802條經(jīng)驗 獲得超5個贊

Rangy是一個跨瀏覽器范圍和選擇庫,可通過其CSS Class Applier模塊完美解決此問題。我正在使用它在各種桌面瀏覽器和iPad上實現(xiàn)突出顯示,并且效果很好。


Tim Down的答案很好,但是Rangy讓您不必自己編寫和維護所有功能檢測代碼。


查看完整回答
反對 回復(fù) 2019-10-11
?
ibeautiful

TA貢獻1993條經(jīng)驗 獲得超6個贊

您可以嘗試為周圍范圍添加一個類并應(yīng)用分層CSS嗎?


var span = document.createElement("span");

span.className="selection";

rangeObject.surroundContents(span);

在CSS定義中,


span.selection, span.selection * {

   background-color : yellow;  

}

我沒有嘗試。但是只是猜測它會起作用。


查看完整回答
反對 回復(fù) 2019-10-11
  • 3 回答
  • 0 關(guān)注
  • 378 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號