Java中document.innerHTML的自封闭标签问题 [英] Self-Closing Tag Issue with document.innerHTML in Javascript
问题描述
我正在用Javascript为网站编写用于Firefox(Greasemonkey),Opera和Chrome的浏览器插件.问题是,当我将document.innerHTML
加载到变量中时,
<form name="foo" action="foo.php" method="get">
<td id="td">text:
<input name="k" type="text" />
</td>
</form>
...网站上方的原始代码(我正在为其编写插件)被转换为
<form name="foo" action="foo.php" method="get">
<td id="td">text:
**<input name="k" type="text">**
</td>
...这一个.如您所见,自动关闭的<input />
标记不再关闭,并且</form>
标记也消失了.我已经在几乎所有的互联网上进行了搜索,但是我读过的所有解决方案都不能解决我的问题.
在获取.innerHTML
时,Firefox中会显示关闭的</form>
标签.
我建议丢失标签是由于您的标记所致,我敢肯定这是无效的:
<!-- A <form> wrapping a <td> ? -->
<form name="foo" action="foo.php" method="get">
<td id="td">text:
<input name="k" type="text" />
</td>
</form>
<td>
元素的父级应该是<tr>
,而不是<form>
.
给出此标记:
<table>
<tr>
<form name="foo" action="foo.php" method="get">
<td id="td">text:
<input name="k" type="text" />
</td>
</form>
</tr>
</table>
... Firefox给我<table>
的innerHTML
:
<tbody>
<tr>
<form name="foo" action="foo.php" method="get"></form>
<td id="td">text:
<input name="k" type="text">
</td>
</tr>
</tbody>
它尝试更正无效的标记.
演示: http://jsfiddle.net/grM4c/ >
I am writing a browser plug-in for Firefox(Greasemonkey), Opera and Chrome in Javascript for a website. The issue is, when I load the document.innerHTML
into a variable,
<form name="foo" action="foo.php" method="get">
<td id="td">text:
<input name="k" type="text" />
</td>
</form>
... the original code above of the website(which I am writing the plug-in for) is converted into
<form name="foo" action="foo.php" method="get">
<td id="td">text:
**<input name="k" type="text">**
</td>
... this one. As you can see, the self-closing <input />
tag is not closed anymore, and the </form>
tag also disappeared. I have googled almost all the internet but none of the solutions I read did not solve my problem.
The closing </form>
tags show up for me in Firefox when getting .innerHTML
.
I'd suggest that the missing tag is due to your markup which I'm pretty sure is invalid:
<!-- A <form> wrapping a <td> ? -->
<form name="foo" action="foo.php" method="get">
<td id="td">text:
<input name="k" type="text" />
</td>
</form>
The parent of a <td>
element should be a <tr>
, not a <form>
.
Given this markup:
<table>
<tr>
<form name="foo" action="foo.php" method="get">
<td id="td">text:
<input name="k" type="text" />
</td>
</form>
</tr>
</table>
...Firefox gives me this innerHTML
for the <table>
:
<tbody>
<tr>
<form name="foo" action="foo.php" method="get"></form>
<td id="td">text:
<input name="k" type="text">
</td>
</tr>
</tbody>
It attempts a correction of the invalid markup.
DEMO: http://jsfiddle.net/grM4c/
这篇关于Java中document.innerHTML的自封闭标签问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!