IFrame在Firefox中工作但不在IE中工作

时间:2013-01-20 14:13:38

标签: javascript iframe

我正在尝试在弹出模式窗口中使用IFrame创建一个AJAX外观文件上传器。一旦脚本在目标页面上运行并且文件被上传,我将使用以下代码回复到我的模态窗口:

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 个答案:

答案 0 :(得分:2)

来自MSDN:

  

innerHTML属性在col,colGroup,frameSet,html,head,style,table,tBody,tFoot,tHead,title和tr对象上是只读的。

您可以使用DOM API执行此操作,也可以替换整个<table>