在网上找到的,在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>