href=”javascript:void(xxxx)”的一个特殊用法
有一个方法openFullWindow代码如下
openFullWindow:function(url){
var h=screen.availHeight-35;
var w=screen.availWidth-5;
var vars="top=0,left=0,height="+h+",width="+w+",status=no,toolbar=no,menubar=no,location=no,resizable=1,scrollbars=1";
var win=window.open(url,"",vars,true);
return win;
}
- _系统首页通过
jquery.html()
生成一行超连接,
<a herf="#" onclick="openFullWindow()"></a>
但是由于动态添加的超连接,可能是由于某些浏览器(如IE9)不能及时解析,导致onlclick
方法并不能生效,不能弹出页面。_ - 如果使用超连接的
href="javascript:openFullWindow"
可以打开窗口,但是页面出现跳转的情况,新页面只一个Object
字符串,由于href="javascript:function"
是根据function的返回值进行跳转的,所以这里出现这个问题。 - 如果配合使用
href="javascript:void()"
方法,就能解决问题,即把连接修改成href=javascript:void(openFullWindow());
就可以了,因为void
方法使得里面的表达式会被计算但是不会在当前文档处装入任何内容,也就是会执行void
里面的操作,但不会改变当前页面,这样就满足需求了。
引用文章:
JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expression是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。我们可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户点击链接时,void(0) 计算为 0,但在 JavaScript 上没有任何效果。
<a href="javascript:void(0)">单击此处什么也不会发生</a>
也就是说,要执行某些处理,但是不整体刷新页面的情况下,可以使用void(0),但是在需要对页面进行refresh的情况下,那就要仔细了。
其实我们可以这样用<a href="javascript:void(document.form.submit())">
,这句话会进行一次submit操作。那什么情况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),:) ,所以在使用void(0)之前,最好先想一想,这个页面是否需要整体刷新。