我将以下 HTML 标记作为输入粘贴到 IE 浏览器上,以代替浏览器上的选定内容:
<span id='fs_892_3006_0' class='ParaMarked' FactType='NonNumeric' onclick='OnSpanClick("fs_892_3006_0", event)' IsFactMarked='true'>
<fact id='892_3006_0' keyword=''>
<P style="margin: 0pt 0pt 10pt; line-height: 115%; font-size: 11pt;">
<SPAN style="font-family: Calibri; font-size: 11pt;">THIS IS A TEST CONTENT 1</SPAN>
</P>
</fact>
</span>
但是,当呈现 HTML 时,IE 会在该 HTML 周围添加额外的标签,如下所示:
<p style="margin: 0pt 0pt 10pt; line-height: 115%; font-size: 11pt;">
<span style="font-family: Calibri; font-size: 11pt;">
<span id="fs_892_3006_0" class="ParaMarked" onclick='OnSpanClick("fs_892_3006_0", event)' IsFactMarked="true" FactType="NonNumeric">
<fact id="892_3006_0" keyword="">
</p><p style="margin: 0pt 0pt 10pt; line-height: 115%; font-size: 11pt;"><span style="font-family: Calibri; font-size: 11pt;">THIS IS A TEST CONTENT 1</span></p></fact></span></span>
我尝试了以下技术将 HTML 粘贴到浏览器上,但结果相同:
注意:“markedText”是包含上述 HTML 输入的 javascript 变量
1. pasteHTML(markedText):http: //msdn.microsoft.com/ en-us/library/ie/ms536656(v=vs.85).aspx
2. Rangy 库:
var sel = rangy.getSelection();
var range = sel.getRangeAt(0);
range.deleteContents();
var node = range.createContextualFragment(markedText);
range.insertNode(节点);
对此的任何指示将不胜感激。
谢谢。