html - IE 在渲染时添加额外的 HTML 标签

标签 html internet-explorer render

我将以下 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. 粘贴 HTML(标记文本):http://msdn.microsoft.com/en-us/library/ie/ms536656(v=vs.85).aspx
2. Rangy 图书馆:
var sel = rangy.getSelection();
变量范围 = sel.getRangeAt(0);
范围.deleteContents();
var node = range.createContextualFragment(markedText);
range.insertNode(节点);

如有任何建议,我们将不胜感激。

谢谢。

最佳答案

跨度内的 p 可能不起作用,因为它是内联元素内的 block 级元素。

有些浏览器会通过将内联元素包装在 block 级元素(默认为“p”)中来“解决”这个问题,然后继续标记的其余部分。

关于html - IE 在渲染时添加额外的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380305/

相关文章:

html - 将 Three.js 渲染到一个 div 元素中

java - 如何平滑这个 Java Mandelbrot 算法?

Django - CSRF token 生成 - render_to_response 与渲染

CSS 布局 : Div's within divs etc

javascript - 为什么这个说未定义?

Internet Explorer 中的 Javascript 故障

javascript - 使用 jQuery 动态呈现选择框的问题

javascript - JQuery 和 Javascript 在我的项目中不起作用,但在网络上可以

html - 使用 SASS 在背景之上发布图像

html - Twitter Bootstrap 中 IE 的 CSS 类是什么?