我无法在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