2011-03-08 84 views
0

我使用在Firefox的JavaScript時,有一個問題,在這裏正常工作是HTML:的Javascript parentNode和innerHTML的不火狐

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

但它應該是b e

<HTML><BODY><form id="formA" name="formA" method="post" action="b.html" target="_blank"> 
           <input name="aInput" value="1294457296" type="hidden"></form> </BODY></HTML> 

請問誰能幫忙嗎?它會非常感激。謝謝!

+1

@ user649420我會先驗證您的HTML。我在開始的HTML中看到錯誤。另外,使用「DOCTYPE」 - 這很重要。 – matthewpavkov 2011-03-08 08:00:37

回答

1

這是因爲你的HTML被嚴重破壞,所以你最終得到的DOM並不如預期的那樣,因爲錯誤處理 - install Firebug並且看看產生的DOM。

在缺失的<tr><td>...</td></tr>中包裹<form>應該會讓您更喜歡預期的DOM。

您的外圍<table>也在第二個<td>附近缺少<tr>

+0

非常感謝,看起來像包裝

與​​​​,可以解決這個問題,所以我假設每個應包裝​​ – Uda 2011-03-08 08:26:27

+0

再次感謝!問題解決了,我問了這個問題,因爲我發現這個html代碼適用於IE8和Safari。 – Uda 2011-03-08 08:38:06

0

parentNode和innerHTML在Firefox中正常工作,你的問題來自你的HTML代碼,這是無效的。