我在Firefox中使用javascript时遇到问题,这里是html:
<HTML>
<BODY>
<TABLE align="center">
<TR><td><input type=button name=submit onclick="javascript:submitIt()" value="submit" align="center"></td></TR>
<TD>
<TABLE>
<DIV STYLE="display:none position:relative;">
<FORM ID="formA" NAME="formA" METHOD="post" ACTION="b.html" TARGET="_blank">
<INPUT TYPE="hidden" NAME=aInput VALUE="1294457296">
</FORM>
</DIV>
</TABLE>
</TD>
</TABLE></BODY></HTML>
这是javascript:
<script language="Javascript">
function submitIt()
{
oForm = document.getElementById("formA");
strRequest = "<HTML><BODY>" + oForm.parentNode.innerHTML + "</BODY></HTML>";
newDoc = window.open("", "", "");
newDoc.document.write(strRequest);
}
问题是当你点击这个html页面中的提交按钮时,你会得到一个带源代码的新html:
<HTML><BODY><form id="formA" name="formA" method="post" action="b.html" target="_blank"></form>
<input name="aInput" value="1294457296" type="hidden"> </BODY></HTML>
但它应该是
<HTML><BODY><form id="formA" name="formA" method="post" action="b.html" target="_blank">
<input name="aInput" value="1294457296" type="hidden"></form> </BODY></HTML>
有人可以帮忙吗?真的很感激。谢谢!
答案 0 :(得分:1)
这是因为你的HTML被严重破坏了,所以你最终得到的DOM由于错误处理而没有达到预期效果 - install Firebug并查看生成的DOM。
将<form>
包裹在丢失的<tr><td>...</td></tr>
中应该会让您更像预期的DOM。
您的外围<table>
在第二个<tr>
附近也遗漏了<td>
。
答案 1 :(得分:0)
parentNode和innerHTML在firefox中正常运行,你的问题来自你的html代码无效。