试试把div.childNodes[1].click()改成这样
var file = div.childNodes[1];
if(file.click)
file.click();
else
{
var e = file.ownerDocument.createEvent("MouseEvent");
e.initEvent("click",false,true);
file.dispatchEvent(e);
}
var file = div.childNodes[1];
if(file.click)
file.click();
else
{
var e = file.ownerDocument.createEvent("MouseEvent");
e.initEvent("click",false,true);
file.dispatchEvent(e);
}
var i=0;
function add()
{
var tbl=document.getElementById('tblFile');
var tr=tbl.insertRow(tbl.rows.length);
var c1=tr.insertCell(0);
var c2=tr.insertCell(1);
var c3=tr.insertCell(2);
var file1=newInputFile();
var img1=newImg(); c1.innerHTML=i;
c2.appendChild(file1);
c3.appendChild(img1);
i++;
}
function newSpan()
{
return document.createElement('span');
}
function newInputFile()
{
var f = document.createElement('input');
f.setAttribute('type','file');
return f;
}
function newImg()
{
var img= document.createElement('img');
img.setAttribute('src','images/de1.gif');
img.setAttribute('id','img'+i);
var objarg = new Object();
objarg.imgid = img.id;
AttachEvent(img, "click", remove, objarg);
return img;
}
function remove()
{
var objImg=document.getElementById(this.imgid);
objImg.parentNode.parentNode.parentNode.removeChild(objImg.parentNode.parentNode);
}function AttachEvent(target, eventName, handler, argsObject)
{
var eventHandler = handler;
if(argsObject)
{
eventHander = function(e)
{
handler.call(argsObject, e);
}
}
if(window.attachEvent)//IE
target.attachEvent("on" + eventName, eventHander );
else//FF
target.addEventListener(eventName, eventHander, false);
}
</script><div>
<div>
<a href="#" onclick="add()">上传附件</a>
</div>
<hr />
<table id="tblFile">
</table>
</div>
其实是把一个file的input设成透明
然后把图片盖在上面点击的时候是点了input原理应该是这样