Javascript parentNode и innerHTML не работают должным образом в Firefox - PullRequest
0 голосов
/ 08 марта 2011

У меня проблема при использовании javascript в Firefox, вот 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>

Может ли кто-нибудь помочь, пожалуйста? это будет действительно оценено. Спасибо!

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Это потому, что ваш HTML серьезно поврежден, поэтому DOM, с которым вы работаете, не соответствует ожиданиям из-за обработки ошибок - установите Firebug и посмотрите на полученный DOM.

Завершение <form> в отсутствующий <tr><td>...</td></tr> должно дать вам больше похожего на ожидаемый DOM.

В вашем внешнем <table> также отсутствует <tr> вокруг второй <td>.

0 голосов
/ 08 марта 2011

parentNode и innerHTML правильно работают в Firefox, ваша проблема связана с неверным HTML-кодом.

...