"#"包含了一个位置信息
默认的锚点是#top 也就是网页的上端
而javascript:void() 仅仅表示一个死链接
这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首
而Javascript:void() 则不是如此
所以调用脚本的时候最好用void()
或者<input onclick>
<div onclick>等
打开新窗口链接的几种办法
windowopen(url)
用自定义函数
<script>
function openWin(tagobj)
{
objtarget="_blank";
objhref = "Web/Substation/Substationaspx?stationno="+tag;
objclick();
}
</script>
<a href="javascript:void()" onclick="openWin(this)">LINK_TEST</a>
windowlocationhref=""
如果是个# 就会出现跳到顶部的情况个人收藏的几种解决方法
<a href="####"></a>
<a href="javascript:void()"></a>
<a href="javascript:void(null)"></a>
<a href="#" onclick="return false"></a>
<span style="cursor:hand"></span>(好像在FF中不能显示)
慎用JavaScript:void()
今天调试CGI的时候明明CGI程序已经执行并且最后结果也是正确的但是页面就是不刷新在Firefox下测试结果却是正常的IE却偏偏不刷新!仔细调查了一下发现cgi页面链接的是 <a href="javaScript:void()" OnClick="XXX_Func();" …> only a sample </a>问题就出在这个void()上!让我们先来看看JavaScript中void()的含义:
JavaScript中void是一个操作符该操作符指定要计算一个表达式但是不返回值
void 操作符用法格式如下
javascript:void (exPRession)
javascript:void expression
expression是一个要计算的 JavaScript 标准的表达式表达式外侧的圆括号是可选的但是写上去是一个好习惯我们可以使用 void 操作符指定超级链接表达式会被计算但是不会在当前文档处装入任何内容面的代码创建了一个超级链接当用户点击以后不会发生任何事当用户点击链接时void() 计算为 但在 JavaScript 上没有任何效果
<a href="javascript:void()">单击此处什么也不会发生</a>
也就是说要执行某些处理但是不整体刷新页面的情况下可以使用void()但是在需要对页面进行refresh的情况下那就要仔细了
其实我们可以这样用<a href="javascript:void(documentformsubmit())">这句话会进行一次submit操作那什么情况下用void()比较多呢无刷新当然是Ajax了看一下Ajax的web页面的话一般都会看到有很多的void())所以在使用void()之前最好先想一想这个页面是否需要整体刷新
为什么locationhref不自动跳转?慎用javascript:void()
<a href="javascript:void()" onclick="delete()">删除</a>
<script>
function delete(id) {
if(confirm("确实要删除[为什么locationhref不自动跳转?]吗?")) {
locationhref="/deletejsp?id=" + id;
}
}
以上代码不管如何检查都没有任何问题而locationhref="/deletejsp?id=" + id;在别的地方都好使为什么这段代码就行呢?
原因是那个void()把代码改成
<a href="javascript:delete()">删除</a>
<script>
function delete(id) {
if(confirm("确实要删除[为什么locationhref不自动跳转?]吗?")) {
locationhref="/deletejsp?id=" + id;
}
}
我们发现页面立即就跳转了能正常删除相应的数据
void是一个操作符会计算一个表达式但不会返回值当然也不会改变当前页面的任何内容也就不会正常的跳转