我無法在Internet Explorer中找到它,但我希望能夠用包含各種html標籤的標籤包裝文本塊。我正在編寫一個突出顯示功能,您可以用鼠標突出顯示文本,並且突出顯示的選項包含在<span>
標記中。例如,請考慮下面的文本塊(輸入):javascript-<span>包含HTML標籤的文本塊在IE中
<p>Lorem <i><b>ipsum dolor</b> sit amet</i>, consectetur <b>adipiscing elit</b>. Morbi</p>
<p></p>
<p>mperdiet, augue id sagittis porta, leo leo...</p>
我所要的輸出是(如果你是突出了整個事情):
<p><span class='id1 highlight'>Lorem </span><i><b><span class='id1 highlight'>ipsum dolor</span></b><span class='id1 highlight'> sit amet</span></i><span class='id1 highlight'>, consectetur </span><b><span class='id1 highlight'>adipiscing elit</span></b><span class='id1 highlight'>. Morbi</span></p>
<p></p>
<p><span class='id1 highlight'>mperdiet, augue id sagittis porta, leo leo...</span></p>
(和亮點可能是什麼像:.highlight{background-color:yellow}
例如)
我通過檢索字符串:htmlStr = document.selection.createRange().htmlText;
最好的我可以找出迄今使用:
document.selection.createRange().pasteHTML("<span class='id1 highlight'>" + htmlStr + "</span>");
編輯:我也想分配另一個類到突出顯示用於跟蹤目的(id1在這種情況下)。
這是一個很好的建議,但是我需要能夠將「id」附加到用於跟蹤目的的亮點。僅供參考 - 我使用class而不是id,因爲我需要在所有亮點中使用相同的「id」。我知道有可能這樣做,因爲那裏有開放源碼的JavaScript代碼,可以在Firefox/Chrome/Safari中執行此操作(將文本塊包含span標籤)。但是,該代碼在IE中不起作用。 execCommand是否允許您至少在整個突出顯示中添加標籤? – 2011-06-05 04:51:53
@James:'execCommand()'的確切行爲因瀏覽器而異。你心目中的開源代碼是什麼? – 2011-06-05 09:56:36
@詹姆斯:我已經更新了我的答案。 – 2011-06-05 10:11:10