我在火狐中偶然发现了一个奇怪的行为。我有一个动态创建的文本,为了能够通过post方法传递参数,我在其中插入了一个包含链接的表单元素。理想情况下,它应该与文本一起流动,看起来像一个普通的锚。
然而,尽管Firefox通常在IE中显示,但它会在表单前面终止段落,这会插入一个不需要的换行符。
有没有人知道为什么会发生这种情况,并有一个解决办法/替代方案?
导致IE(正常):

<p class="article" >This is my paragraph and here goes my
<form style="display: inline" name="link_form" action="link.html" method="post">
<input type="hidden" name="lnk_id" value="1" /><a class="link" href="#" onclick="link_form.submit()">link</a></form>**</p>**

Firefox中的结果(ko):
<p class="article" >This is my paragraph and here goes my**</p>**
<form style="display: inline" name="link_form" action="link.html" method="post">
<input type="hidden" name="lnk_id" value="1" /><a class="link" href="#" onclick="link_form.submit()">link</a></form>

提前谢谢

最佳答案

这是很正常的,P标记只能包含内联元素,这不是表单的情况。(见http://www.w3.org/TR/html401/struct/text.html#h-9.3
由于HTML4规范允许您不关闭标记,Firefox假设您忘记在表单开始之前关闭P标记,因此在使用Firebug检查DOM时可以看到关闭标记。

09-11 19:03
查看更多