我想使用過ajax的都常見這樣的代碼:
<a href="javascript:doTest2();void(0);">here</a>
但這兒的void(0)究竟是何含義呢?

JavaScript中void是一個操作符,該操作符指定要計算一個表達式但是不返回值。

void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression

expression 是一個要計算的 JavaScript 標準的表達式。表達式外側(cè)的圓括號是可選的,但是寫上去是一個好習慣。 (實現(xiàn)版本   Navigator 3.0   )

你可以使用 void 操作符指定超級鏈接。表達式會被計算但是不會在當前文檔處裝入任何內(nèi)容。

下面的代碼創(chuàng)建了一個超級鏈接,當用戶點擊以后不會發(fā)生任何事。當用戶點擊鏈接時,void(0) 計算為 0,但在 JavaScript 上沒有任何效果。

<A HREF="javascript:void(0)">單擊此處什么也不會發(fā)生</A>

下面的代碼創(chuàng)建了一個超級鏈接,用戶單擊時會提交表單。

<A HREF="javascript:void(document.form.submit())">單擊此處提交表單</A>

 

那什么情況下用void(0)比較多呢,無刷新,當然是Ajax了,看一下Ajax的web頁面的話,一般都會看到有很多的void(0),所以在使用void(0)之前,最好先想一想這個頁面是否需要整體刷新。

----------------------------------------------------------------------------

使用javascript的時候,通常我們會通過類似:<a href="#" onclick="javascript:方法">提交</a> 的方式,通過一個偽鏈接來調(diào)用javascript方法。這種方法有一個問題是:雖然點擊該鏈接的時候不會跳轉(zhuǎn)頁面,但是滾動條會往上滾,解決的辦法是返回一個false。
如下所示:
<a href="#" onclick="javascript:方法;return false;">提交</a>

<a href="javascript:void(0)" onclick="javascript:方法;return false;">提交</a>

還有一個方法是 #this
a href="#this" onclick="javascript:方法"

----------------------------------------------------------------------------


#包含了一個位置信息

默認的錨點是#top 也就是網(wǎng)頁的上端

而javascript:void(0)   僅僅表示一個死鏈接

這就是為什么有的時候頁面很長瀏覽鏈接明明是#可是跳動到了頁首

而javascript:void(0) 則不是如此

所以調(diào)用腳本的時候最好用void(0) 或者<input onclick> <div onclick>等

打開新窗口鏈接的幾種辦法

1.window.open('url')

2.用自定義函數(shù)

        <script>
        
function openWin(tag,obj)
        
{
             obj.target
="_blank";
             obj.href
= "Web/Substation/Substation.aspx?stationno="+tag;
             obj.click();
         }

        
</script>

 

<a href="javascript:void(0)" onclick="openWin(3,this)">株洲</a>

3.window.location.href=""

總結(jié):
1)鏈接(href)直接使用javascript:void(0)在IE中可能會引起一些問題,比如:造成gif動畫停止播放 等,所以,最安全的辦法還是使用“#”。為防止點擊鏈接后跳轉(zhuǎn)到頁首,onclick事件return false即可。
2)在使用void(0)之前,最好先想一想,這個頁面是否需要整體刷新,不需要整體刷新時可以用void(0)。