如何使用DOM事件流动捕获 DOM中有2种事件流,一个是冒泡事件,还有一个是捕获事件我现在有拦截所有的<a>链接</a>事件,使得所有的<a>超链接失效,使用捕获事件应该可以做到吧,具体用Javascript怎么才能捕获的<a>标签的点击事件,并使之失效啊?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var a = document.getElementsByTagName('a'); for(var i = 0;i < a.length; i++){ a[i].onclick = function (){return false;} } 这个可以阻止冒泡。function stopBubble(e)//非ie的if(e&& e.stopPropagation)e.stopProgpagation();elsewindow.event.cancelBubble=true;你说的点击事件失效,是要去掉浏览器的默认行为。function stopDefault(e){if(e&& e.preventDefault)e.preventDefault();elsewindow.event.returnValue=false;return false;} 用不着阻止冒泡呀<html><head><title> </title><script>window.onload=function(){ var as=document.getElementsByTagName("a"); for(var i=0;i<as.length;i++) { as[i].onclick=function(){return false;}; }}</script></head><body> <a href="http://www.baidu.com">百度</a><br/> <a href="http://www.google.com">谷歌</a></body><html> var as=document.getElementsByTagName("a");不要这种遍历的方法,当我动态添加<a>标签的时候就无效了,使超链接点击事件失效只是举个例子,我要的就是捕获事件流的js操作,最好是兼容浏览器的。 function stopPropagation(eventObj){ if(eventObj.stopPropagation) { eventObj.stopPropagation(); } else { eventObj.cancelBubble=true; }} LZ要的应该是取消默认动作而不是阻止冒泡吧<html><head><title> </title><script>function stopPropagation(eventObj){ if(eventObj.stopPropagation) { eventObj.stopPropagation(); } else { eventObj.cancelBubble=true; }}//取消默认动作function preventDefault(eventObj){ if(eventObj.preventDefault) { eventObj.preventDefault(); } else { eventObj.returnValue=false; }}window.onload=function(){ var as=document.getElementsByTagName("a"); for(var i=0;i<as.length;i++) { if(window.event) as[i].onclick=function(){preventDefault(window.event)}; else as[i].onclick=function(){preventDefault(arguments[0])}; }}</script></head><body> <a href="http://www.baidu.com">百度</a><br/> <a href="http://www.google.com">谷歌</a></body><html> 自己找到方法了window.addEventListener('click',function(event){ var url=event.target.href; if(url.indexOf('http://')==0){ alert(url); event.preventDefault(); event.stopPropagation(); }},true);其中第三个参数为true,表示在事件捕获阶段执行,如果为false,则在冒泡阶段执行因为IE不支持事件捕获,所以IE无法使用。不得不说IE很挫,W3C DOM2的事件规范又不支持 IE下面应该是这个 window.attachEvent(sEvent, fpNotify) 关于html页面frameset框架隐藏问题!!急求答案 有代码,调试出现的对象不存在的情况 关于创建 特殊效果窗口 上传文件 网页打开后自动全屏 请教关于如何动态改变对象事件关联的函数 那位高手看看,然后教教我~! js获得textarea的值的问题。高手请帮我:小弟在线等。 请帮我写个js函数! ueditor怎么在config.json文件里面获取项目的根路径 table的单击事件怎么屏蔽 如果替换INPUT?如果替换INPUT?如果替换INPUT?
for(var i = 0;i < a.length; i++){
a[i].onclick = function (){return false;}
}
//非ie的
if(e&& e.stopPropagation)
e.stopProgpagation();
else
window.event.cancelBubble=true;你说的点击事件失效,是要去掉浏览器的默认行为。function stopDefault(e)
{
if(e&& e.preventDefault)
e.preventDefault();
else
window.event.returnValue=false;
return false;
}
<head>
<title> </title>
<script>
window.onload=function(){
var as=document.getElementsByTagName("a");
for(var i=0;i<as.length;i++)
{
as[i].onclick=function(){return false;};
}
}
</script>
</head>
<body>
<a href="http://www.baidu.com">百度</a><br/>
<a href="http://www.google.com">谷歌</a>
</body>
<html>
function stopPropagation(eventObj)
{
if(eventObj.stopPropagation)
{
eventObj.stopPropagation();
}
else
{
eventObj.cancelBubble=true;
}
}
<html>
<head>
<title> </title>
<script>
function stopPropagation(eventObj)
{
if(eventObj.stopPropagation)
{
eventObj.stopPropagation();
}
else
{
eventObj.cancelBubble=true;
}
}
//取消默认动作
function preventDefault(eventObj)
{
if(eventObj.preventDefault)
{
eventObj.preventDefault();
}
else
{
eventObj.returnValue=false;
}
}
window.onload=function(){
var as=document.getElementsByTagName("a");
for(var i=0;i<as.length;i++)
{
if(window.event)
as[i].onclick=function(){preventDefault(window.event)};
else
as[i].onclick=function(){preventDefault(arguments[0])};
}
}
</script>
</head>
<body>
<a href="http://www.baidu.com">百度</a><br/>
<a href="http://www.google.com">谷歌</a>
</body>
<html>
var url=event.target.href;
if(url.indexOf('http://')==0){
alert(url);
event.preventDefault();
event.stopPropagation();
}
},true);其中第三个参数为true,表示在事件捕获阶段执行,如果为false,则在冒泡阶段执行
因为IE不支持事件捕获,所以IE无法使用。
不得不说IE很挫,W3C DOM2的事件规范又不支持