【问题标题】:Javascript parentNode and innerHTML do not work properly in FirefoxJavascript parentNode 和 innerHTML 在 Firefox 中无法正常工作
【发布时间】:2011-03-08 07:56:38
【问题描述】:

我在 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>

有人可以帮忙吗?将不胜感激。谢谢!

【问题讨论】:

  • @user649420 我将从验证您的 HTML 开始。我在您开始使用的 HTML 中看到了错误。另外,使用DOCTYPE - 这很重要。

标签: javascript html firefox innerhtml


【解决方案1】:

这是因为您的 HTML 严重损坏,因此由于错误处理,您最终得到的 DOM 与预期不符 - install Firebug 并查看生成的 DOM。

&lt;form&gt; 包装在缺少的&lt;tr&gt;&lt;td&gt;...&lt;/td&gt;&lt;/tr&gt; 中应该会让您更像预期的DOM。

您的外部&lt;table&gt; 也缺少一个&lt;tr&gt; 围绕第二个&lt;td&gt;

【讨论】:

  • 非常感谢insin,好像用 包裹
    ,可以解决这个问题,所以我假设每个
    都应该被包裹
  • 再次感谢insin!问题解决了,我问了这个问题,因为我发现这段 html 代码在 IE8 和 Safari 上运行良好。
【解决方案2】:

parentNode 和 innerHTML 在 firefox 中正常工作,您的问题来自无效的 html 代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-10
    • 2015-02-11
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2013-06-21
    相关资源
    最近更新 更多