Javascript 中阻止浏览器默认操作

在浏览器事件中,会触发一些默认动作,比如:点击一个链接时,执行完捕获/冒泡动作后,会触发链接的默认事件:跳转到指定链接地址。

在很多时候,我们需要改变这些默认操作,比如:点击一个链接时,我们执行一些 ajax 操作,但是我们并不希望执行跳转动作,于是,就有了本文:阻止浏览器默认操作。

其实这并不是一个非常难的课题,单独拿出来的原因还是浏览器兼容问题:

<script type="text/javascript">

// 说明:Javascript 中阻止浏览器默认操作
// 作者:John Resig
// 来源:CodeBit.cn ( http://www.CodeBit.cn )

function stopDefault( e ) {
	// Prevent the default browser action (W3C)
	if ( e && e.preventDefault )
		e.preventDefault();
	// A shortcut for stoping the browser action in IE
	else
		window.event.returnValue = false;
	return false;
}
</script>

使用示例:

<a href="http://www.google.com" id="testLink">Google</a>

<script type="text/javascript">
var test = document.getElementById('testLink');
test.onclick = function(e) {
	alert('我的链接地址是:' + this.href + ', 但是我不会跳转。');
	stopDefault(e);
}
</script>

关于 Artlover

有多年 web 开发经验,擅长领域 PHP / MySQL / CSS / Javascript / Zend Framework ,期望:在分享中共同成长。
此条目发表在 Javascript 分类目录,贴了 , , , , 标签。将固定链接加入收藏夹。

Javascript 中阻止浏览器默认操作》有 2 条评论

  1. simaopig 说:

    好久不来,发现搜索很多东西都能找到这里。

    PS:这个方法preventDefault还真不知道,残念啊。。

    window.event.returnValue = false; 这个也不用,晕死了

    平时都是直接写一个 return false; 了事的。。

  2. 船长 说:

    像楼上说的,return false就可以了。

    好像找到了一个好地方。呵呵。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>