试试把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);
}

解决方案 »

  1.   

    我试了不可以啊!我的浏览器是firefox3另外safari和opera也不可以用
      

  2.   

        <script type="text/javascript">
    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>
      

  3.   

    3楼的我已经实现了,我想的功能是点击添加附件,直接就弹出选择文件对话框,不知3楼有没有发现163的这个特色在ie,safari,firefox,opera都可以实现的。而gmail只能在ie有这个功能,其他类型的浏览器均和3楼一个样式。
      

  4.   

    163那个添加附加是个图片只是模拟成看起来像a
    其实是把一个file的input设成透明
    然后把图片盖在上面点击的时候是点了input原理应该是这样