记录生活
简单不先于复杂

对象不支持 “preventDefault” 属性或方法的解决办法

在做Ajax表单提交的时候,需要阻止浏览器的默认动作,如果是谷歌或火狐等现在浏览器,直接用event.preventDefault();就好了,可悲的是,这方法到IE浏览器下面就不行了,甚至是IE10都不行。怎么解决呢?IE下面其实也有自己的阻止默认行为的方法window.event.returnValue = false;,可这方法现代浏览器们不认,要兼容不同的浏览器,我们只好做一个判断了,不同的浏览器用相应支持的方法去阻止默认行为就好了。代码如下:

if(document.all){ //判断IE浏览器
  window.event.returnValue = false;
}
else{
  event.preventDefault();
};

把这段代码加到提交Ajax表单功能的上面就可以了。

或者,我们可以改写一下preventDefault函数,把兼容各个浏览器的代码写到这个函数里面:

function preventDefault(event){
    if(document.all){
      window.event.returnValue = false;
    }else{
      event.preventDefault();
    }
}

把上面的函数添加到js文件中,在其他地方引用的时候,就不用再判断浏览器了,直接使用preventDefault();就可以了。

赞(0)
未经允许不得转载:爱安普 » 对象不支持 “preventDefault” 属性或方法的解决办法