空HTML元素无意中包含了另一个内容

时间:2013-12-29 15:45:47

标签: html css dom

我遇到了与我合作的网络产品的问题。问题发生在head元素和body中。到目前为止,我还没有找到问题的确切模式,所以我认为最好用例子来描述。

基本上它变成: -

<head>
....
    <script src="abc.js"/>
    <script src="def.js"/>
....
</head>
在DOM中

进入这个: -

<head>
....
    <script src="abc.js">
        <script src="def.js"/>
    </script>
....
</head>

还有: -

<body>
    <div><i class="fa fa-search"/></div>
    <div>abcdefg</div>
    ....
</body>

进入: -

<body>
    <div><i class="fa fa-search"/></div>
    <div><i class="fa fa-search">abcdefg</i></div>
    ....
</body>

我甚至尝试完全禁用JS(使用Chrome开发人员工具和FireFox NoScript扩展程序),问题仍然存在。

这个问题已存在很长时间了。我们用<span />填充这些空元素,这样它们就不再是空的了。但是,我对<script src="jquery.js"><span /></script>这样的事情感到内疚。

你能否建议我该怎样做才能找到原因?另外,如果您之前发现过类似的内容,请分享。谢谢。

编辑:问题发生在IE,FF和Chrome上。

编辑:我注意到html错了。 HTML已更正。此HTML是从XSL处理器生成的。

1 个答案:

答案 0 :(得分:2)

在我注意到实际输出html为<script src="abc.js"/>而不是<script src="abc.js> </script>后,我做了一些研究,发现<script>标记无法自动关闭。

我尝试用非自动关闭替换自闭标签,结果很好。所以我认为这是问题的原因。

今天学到的经验(对我来说):当输出是HTML而不是XML时,避免使用自我关闭。

编辑:HTML中没有自封式标记。