2010-04-28 2 views
1

Я пытаюсь загрузить файл с помощью скрытого iframe и получить ответ обратно. Следующий код отлично работает на Firefox, но разбивается на IE. Это не дает ответа.Доступ к содержимому iframe с использованием jquery в IE

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. Я также не уверен, могут ли методы JQuery быть вызваны в элементах DOM в документе (ваш IFRAME), который сам не имеет ссылки на 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); 
});