alert(this.value || input_file.value);

解决方案 »

  1.   

    应该是低版本的IE无效吧?低版本的IE,这个时候,this是等于window的,IE9+的应该是可以的。function PreviewImage(e){
    e = e || window.event;//获取事件
    var target = e.srcElement || e.target;//获取目标元素
    var tagName = target.tagName.toLowerCase();//获取目标元素的标签名,并变成小写
    if(tagName == "input"){
    //判断是否为input标签。如果是则执行
    alert(target.value);//获取input的value值。
    }
    }试试这样写呗,我这里带的e作为参数,在绑定事件时,是可以不写的。至于其他的参数,你就再套一层函数吧,类似这样function PreviewImage(e){
    function  aa(x,y){
    e = e || window.event;//获取事件
    var target = e.srcElement || e.target;//获取目标元素
    var tagName = target.tagName.toLowerCase();//获取目标元素的标签名,并变成小写
    if(tagName == "input"){
    //判断是否为input标签。如果是则执行
    alert(target.value);//获取input的value值。
    }
    }
    aa(x,y);
    }试试。。
      

  2.   

    attachEvent方法添加的事件,this为window对象,不是对应的控件input_file.setAttribute('type','file');input_file.setAttribute('name','pictures[]');if(window.addEventListener)
    {
    input_file.addEventListener('change',function(){PreviewImage(input_file,....其他参数)},false);
    }
    else
    {
    input_file.attachEvent('onchange',function(){PreviewImage(input_file,....其他参数)})
    }function PreviewImage(f,....其他参数)
    {
             f.value;//函数里面调用这句,在chrome,FF中有效,在IE中却无效,该怎么解决这个兼容问题
    }