打印

仿126多附件上传js在ff下的兼容问题

在网上找到的,在ie下没问题,在ff下就出现兼容的问题了,自己试着改了半天没解决,有什么解决办法吗?
复制内容到剪贴板
代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
</HEAD>
<style type="text/css">
.NoborderR{background: none;border:none;}
</style>
<script language="javascript" type="text/javascript">
//----- Multi Upload Functions -------------------------------------------------
var isIE = (navigator.userAgent.indexOf("MSIE") != -1);
var fileIndex = 0;
var dic ;
if(isIE){
dic= new ActiveXObject("Scripting.Dictionary");
}
function addFile() {
    var obj;
    if (isIE) {
        obj = document.createElement("<input type=file id='hdnFile' onchange='getValue(this.value);' style='display:none' />");        
    } else {
         obj = document.createElement("input");
         obj.type = "file";
         obj.id="hdnFile";
         obj.setAttribute("style", "display:none;", 0);
         obj.setAttribute("onchange", "javascript:getValue(this.value);", 0);
    }
    document.getElementById("filespan").appendChild(obj);
    document.getElementById('hdnFile').click();  
    //addInputFile(spanId, fileId);
    //提示有没上传附件
    //document.getElementById('divMsg').style.display = (dic.Count > 0)?'none':'';        
}
function addInputFile(spanId, fileId, str) {
    var span = document.getElementById(spanId);
    if (span != null) {
        //检测存在性        
        //if (dic.Exists(fileId))
        if(valueExists(str))
        {
            alert("不能重复添加相同文件");
            return false;
        }
        var divObj = document.createElement("div"), fileObj, delObj;
        divObj.id = fileId;
        divObj.style.height='22';
        var imgObj, fileObj, delObj;
        if (isIE) {        
            imgObj = document.createElement("<img src='../../images/unknown.gif' />");
            fileObj = document.createElement("<input type=text readonly>");
            delObj = document.createElement("<img src='../../images/delete.gif' onclick=delInputFile('" + spanId + "','" + fileId + "')>");            
        } else {
            imgObj = document.createElement("img");
            imgObj.setAttribute("src", "../../images/unknown.gif", 0);
            fileObj = document.createElement("input");
            fileObj.type = "text";
            fileObj.setAttribute("readonly", "readonly", 0);
            delObj = document.createElement("img");
            imgObj.setAttribute("src", "../../images/delete.gif", 0);
            delObj.setAttribute("onclick", "delInputFile('" + spanId + "','" + fileId + "')", 0);
        }
        fileObj.name = fileId;
        fileObj.size = "50";   
        fileObj.value = str;
        fileObj.className = "NoborderR";
        //delObj.value = "删除";        
        divObj.appendChild(imgObj);
        divObj.appendChild(document.createTextNode(" "));
        divObj.appendChild(fileObj);        
        divObj.appendChild(document.createTextNode(" "));        
        divObj.appendChild(delObj);
        span.appendChild(divObj);
        //数据字典记录
        dic.Add(fileId, str);        
    }
}
function delInputFile(spanId, fileId) {
    var span = document.getElementById(spanId);
    var divObj = document.getElementById(fileId);
    if (span != null && divObj != null) {
        span.removeChild(divObj);
        //从数据字典移除
        dic.Remove(fileId);
       // document.getElementById('divMsg').style.display = (dic.Count > 0)?'none':'';
    }
}
function getValue(str)
{
var spanId = "filespan";
var fileId = "uploadfile" + fileIndex;
// if(str.bPermissiveFile("")) {
if(isFileType(str)){
addInputFile(spanId, fileId, str);
} else {
alert("该附件类型不允许上传!");
}
}
//String.prototype.bPermissiveFile = function(strFilter)方法换成下面的方法,就可以了
function isFileType(str) {
strFilter=".doc|.txt|.ppt|.log|.xls|.vsd|.rar|.zip|.png|.jpg|.gif|.bmp|.jpeg|.pdg|.pdf|"; //有效文件类型
if(str.indexOf(".")>-1)
{
var p = str.lastIndexOf(".");
var strPostfix=str.substring(p,str.length) + '|';
strPostfix = strPostfix.toLowerCase();
if(strFilter.indexOf(strPostfix) > -1)
{
return true;
}
}
return false;
}
function valueExists(str)
{  
   a = (new VBArray(dic.Items())).toArray();   //获取条目。  
   for (i in a)                  //遍历该 dictionary。
   {
      if(a[i]==str)
        return true;
   }
   return false;
}
//-->
</script>           
<BODY>
  <div nowrap id="filespan">            
    <input type="button" onclick="addFile()" value="添加附件" id="btnAdd" />     
    <div id="divMsg">尚未添加文件</div>
</div>
</BODY>
</HTML>

等待