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

在做Ajax表单提交的时候,需要阻止浏览器的默认动作,如果是谷歌或火狐等现在浏览器,直接用event.prev…

在做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();就可以了。

类别:WordPress 教程精选

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册