为了账号安全,请及时绑定邮箱和手机立即绑定

IE阻止默认行为的代码是不是对IE10无效?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<div id="box">
<input type="button" id="btn1" value="按钮"  />
<a id="gop" href="事件处理程序(BUG).html">跳转页面</a>
</div>
<script type="text/javascript">
//事件对象
var btn1=document.getElementById('btn1');
var box=document.getElementById('box');
var gop=document.getElementById('gop');
btn1.addEventListener('click',showMes,false);
function showMes(ev){
	alert(ev.type);
//	var ele=ev.target;
	var ele=ev.srcElement;//IE访问事件标签
	alert(ele);
	alert(ev.target.nodeName);
//	ev.stopPropagation();//这行代码阻止了事件冒泡
	ev.cancelBubble=false;//IE浏览器阻止事件冒泡
}
function showBox(){
	alert("这个事件证实了事件冒泡");
}
//阻止事件冒泡
function stopGoto(ev){
	ev.stopPropagation();
//	ev.preventDefault();//阻止了默认行为,阻止标签a的跳转
	ev.returnValue=false;//IE阻止默认行为,对IE10貌似无效
}
box.addEventListener('click',showBox,false);
gop.addEventListener('click',stopGoto,false);
</script>
</body>
</html>

请看stopGoto这个函数,我在函数里写了ev.returnValue=false;这句话,想要阻止IE浏览器上a标签的默认行为,但是在IE10中运行的时候发现,没有成功阻止。chrome上倒是成功阻止了。

正在回答

2 回答

ev.returnValue=false  这个改成 window.event.returnValue=false

0 回复 有任何疑惑可以回复我~

可以阻止的,是因为你上面的代码在IE里面有报错,你代码里面没有用封装的方式都添加事件,在IE里面不能正确执行,所以,阻止不了,

请使用封装好的工具对象:

var EventUtil={
   addHandler:function(element,type,handler){
       if(element.addEventListener)
       {
           element.addEventListener(type,handler,false);
       }else if(element.attachEvent){
           element.attachEvent('on'+type,handler);
       }else
       {
           element['on'+type]=handler;
       }
   },
   removeHandler:function(element,type,handler){
       if(element.removeEventListener)
       {
           element.removeEventListener(type,handler,false);
       }else if(element.attachEvent){
           element.detachEvent('on'+type,handler);
       }else
       {
           element['on'+type]=null;
       }
   },
   getEvent:function(event){
       return event?event:window.event;
   },
   getType:function(event){
       return event.type;
   },
   getTarget:function(event){
       return event.target||event.srcElement;
   },
   preventDefault:function(event)
   {
       if(event.preventDefault)
       {
           event.preventDefault();
       }else
       {
           event.returnValue=false;
       }
   },
   stopPropagation:function(event)
   {
       if(event.stopPropagation)
       {
           event.stopPropagation();
       }else
       {
           event.cancelBubble=true;
       }

   }
}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

IE阻止默认行为的代码是不是对IE10无效?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信