2013-01-20 227 views
1

我正在嘗試在彈出式模式窗口中使用IFrame創建一個AJAX外觀文件上傳器。一旦腳本目標頁面上運行,並在文件上傳我得到一個響應返回給我用下面的代碼模態窗口:IFrame在Firefox中工作,但不是IE

function stopUpload(success) { 
     var result = ''; 
     if (success == 0) { 
      document.getElementById('result').innerHTML = '<div class="msg-error" style="width:492px;">There was an error during file upload!<\/div><br/>'; 
     } else if (success == 2) { 
      document.getElementById('result').innerHTML = '<div class="msg-error" style="width:492px;">ERROR! Please upload a document with the following file types....<br/><br/>txt, doc, xls, rtf, ppt, pdf, jpg, jpeg, gif, png, xlsx, docx, png, pps, ppsx, ppt<\/div><br/>'; 
     } else { 
      var dom_string = success; 
      var dom_target = window.top.document.getElementById('table_body'); 
      dom_target.innerHTML = dom_string; 
      document.getElementById('result').innerHTML = '<div class="msg-status" style="width:492px;">The file was uploaded successfully!<\/div><br/>'; 
     } 
     document.getElementById('f1_upload_process').style.visibility = 'hidden'; 
     return true; 
    } 

上面的代碼應該在我的模式窗口給成功消息再更新模式窗口後面的父頁面上的文件列表,以便人員可以處理另一個上載。在FF 18中一切正常,但IE 9在開發人員工具欄上引發以下錯誤:

SCRIPT600:此操作的目標元素無效。

dom_target.innerHTML = dom_string; 

我對此感到困惑,因爲table_body是目標的ID,同樣,它在Firefox中也很棒。有任何想法嗎?我正在拉我的頭髮。

+1

注意如果你調用沒有任何參數的函數,即'stopUpload();','success == 0'將計算爲'true'。做'成功=== 0'是更強大的。 –

回答

2

從MSDN:

innerHTML屬性爲只讀的山坳,COLGROUP,框架集,HTML,頭,風格,表,TBODY,tFoot中,的tHead,title和TR對象。

您可以使用DOM API來完成它,或者您也可以替換整個<table>

+0

我不知道。現在Jquery一定一直在幫我。現在效果很好,謝謝! –

相關問題