Доступ к контенту Iframe с помощью jquery в IE - PullRequest
1 голос
/ 29 апреля 2010

Я пытаюсь загрузить файл, используя скрытый Iframe, и получить ответ обратно. Следующий код прекрасно работает в Firefox, но не работает в 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);

    });
});

Ответы [ 2 ]

0 голосов
/ 06 мая 2010

Попробуйте это:

jFrame.load(function(objEvent) {
    var content = $(this.contentWindow.document.body).html();
    alert(content);
});
0 голосов
/ 29 апреля 2010

Я не думаю, что у 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';
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...