javascript:void(0); 详解
经常遇到把鼠标放在一个超链接上显示这样的代码:javascript:void(0);
如这样的写法:<a href="javascript:doTest2();void(0);">here</a>
但这儿的void(0)究竟是何含义呢?
JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expression 是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。
你可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。
下面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户点击链接时,void(0) 计算为 0,但在 JavaScript 上没有任何效果。
<A HREF="javascript:void(0)">单击此处什么也不会发生</A>
下面的代码创建了一个超级链接,用户单击时会提交表单。
<A HREF="javascript:void(document.form.submit())">单击此处提交表单</A>,这句话会进行一次submit操作。那什么情 况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),:) ,所以在使用 void(0)之前,最好先想一想,这个页面是否需要整体刷新。如果在href=后面写个有返回值的函数,那么页面将会跳转,新页面就是javascript的返回值。为了避免出现这样的情况,才使用JavaScript:void(0)。
其实 javascript:void(0); 相当于 # 的作用,如 href="#",但是 # 包含了一个位置信息默认的锚点是 #top,也就是网页的上端,当用href=#时,点击会到网页顶端,而javascript:void(0) 仅仅表示一个死链接,点击无反应,这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首,而javascript:void(0) 则不是如此所以调用脚本的时候最好用void(0),或者<input onclick>、<div onclick>等。
总结链接的几种方法:
(1)window.open("url")
(2)自定义函数:
<script>
function openWin(tag,obj) {
obj.target="_blank";
obj.href = "News/DisplayNews.aspx?id="+tag;
obj.click();
}
</script>
<a href="javascript:void(0)" onclick="openWin(5,this)">海波吧</a>
(3)window.location.href=""