IFrame在Firefox中工作,但不是IE
问题描述:
我正在尝试在弹出式模式窗口中使用IFrame创建一个AJAX外观文件上传器。一旦脚本目标页面上运行,并在文件上传我得到一个响应返回给我用下面的代码模态窗口:IFrame在Firefox中工作,但不是IE
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中也很棒。有任何想法吗?我正在拉我的头发。
答
从MSDN:
innerHTML属性为只读的山坳,COLGROUP,框架集,HTML,头,风格,表,TBODY,tFoot中,的tHead,title和TR对象。
您可以使用DOM API来完成它,或者您也可以替换整个<table>
。
+0
我不知道。现在Jquery一定一直在帮我。现在效果很好,谢谢! –
注意如果你调用没有任何参数的函数,即'stopUpload();','success == 0'将计算为'true'。做'成功=== 0'是更强大的。 –