我遇到了与我合作的网络产品的问题。问题发生在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处理器生成的。
答案 0 :(得分:2)
在我注意到实际输出html为<script src="abc.js"/>
而不是<script src="abc.js> </script>
后,我做了一些研究,发现<script>
标记无法自动关闭。
我尝试用非自动关闭替换自闭标签,结果很好。所以我认为这是问题的原因。
今天学到的经验(对我来说):当输出是HTML而不是XML时,避免使用自我关闭。
编辑:HTML中没有自封式标记。