2010-04-28 71 views
1

我試圖使用隱藏的iframe上傳文件並獲取響應。下面的代碼可以在Firefox上正常工作,但在IE上會中斷。它沒有得到迴應。在IE上使用jquery訪問iframe內容

Line.... 
var content = $j(this).contents().find("body:last").text(); 

任何幫助/建議深表謝意。 謝謝。

$j('#uploadForm').submit(function(e) { 

     var jThis = $j('#uploadForm'); 
     var strName = ("uploader" + (new Date()).getTime()); 
     var jFrame = $j("<iframe id=\"" + strName + "\" name=\"" + strName + "\" src=\"about:blank\" />"); 
     jFrame.css("display", "none"); 

     jThis 
       .attr("method", "post") 
       .attr("enctype", "multipart/form-data") 
       .attr("encoding", "multipart/form-data") 
       .attr("target", strName) 
       ; 

     $j("body:first").append(jFrame); 

     jFrame.load(function(objEvent) { 
      var content = $j(this).contents().find("body:last").text(); 
      alert(content); 

    }); 
}); 

回答

0

我不認爲JQuery有一個更具體的方法來抽象出IFRAME實現中的差異。我也不確定是否可以在文檔中的DOM元素(您的IFRAME)上調用JQuery方法,該文檔本身沒有對JQuery的引用。所以,我想嘗試這樣的事:

var d = $j(this); 
if(d.body) { 
    return d.body.innerHTML; 
    } 
else if(d.innerHTML) { 
    return d.innerHTML; 
    } 
else { 
    return 'Frame has no body'; 
    } 
0

試試這個:

jFrame.load(function(objEvent) { 
    var content = $(this.contentWindow.document.body).html(); 
    alert(content); 
});