在IE上使用jquery访问iframe内容

时间:2010-04-28 20:31:27

标签: jquery internet-explorer iframe file-upload

我正在尝试使用隐藏的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 :(得分:0)

我认为JQuery没有更具体的方法来抽象出IFRAME实现中的差异。我也不确定是否可以在文档(您的IFRAME)中的DOM元素上调用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';
    }

答案 1 :(得分:0)

试试这个:

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