我們?cè)?JavaScript腳本中就會(huì)經(jīng)??梢钥吹竭@樣的代碼:
〈a href="javascript:changeNum();void(0);"〉here〈/a〉
但這兒的void(0)究竟是何含義呢?
JavaScript中void是一個(gè)操作符,該操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值。
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expression 是一個(gè)要計(jì)算的 JavaScript 標(biāo)準(zhǔn)的表達(dá)式。表達(dá)式外側(cè)的圓括號(hào)是可選的,但是寫(xiě)上去是一個(gè)好習(xí)慣。 你可以使用 void 操作符指定超級(jí)鏈接。表達(dá)式會(huì)被計(jì)算但是不會(huì)在當(dāng)前文檔處裝入任何容。
下面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,當(dāng)用戶(hù)點(diǎn)擊以后不會(huì)發(fā)生任何事。當(dāng)用戶(hù)點(diǎn)擊鏈接時(shí),void(0) 計(jì)算為 0,但在 JavaScript 上沒(méi)有任何效果。
<a href="javascript:void(0)">單擊此處什么也不會(huì)發(fā)生</A>
下面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,用戶(hù)單擊時(shí)會(huì)提交表單。
<a href="javascript:void(document.form.submit())">單擊此處提交表單</A>
使用javascript的時(shí)候,通常我們會(huì)通過(guò)類(lèi)似:<a href="#" onclick="javascript:方法">提交</a> 的方式,通過(guò)一個(gè)偽鏈接來(lái)調(diào)用javascript方法。這種方法有一個(gè)問(wèn)題是:雖然點(diǎn)擊該鏈接的時(shí)候不會(huì)跳轉(zhuǎn)頁(yè)面,但是滾動(dòng)條會(huì)往上滾,解決的辦法是返 回一個(gè)false。
如下所示:
<a href="#" onclick="javascript:方法;return false;">提交</a>
<a href="javascript:void(0)" onclick="javascript:方法;return false;">提交</a>
<a href="#this" onclick="javascript:方法">xx</a>
#包含了一個(gè)位置信息默認(rèn)的錨點(diǎn)是#top 也就是網(wǎng)頁(yè)的上端,而javascript:void(0) 僅僅表示一個(gè)死鏈接。 這就是為什么有的時(shí)候頁(yè)面很長(zhǎng)瀏覽鏈接明明是??墒翘鴦?dòng)到了頁(yè)首,而javascript:void(0) 則不是如此所以調(diào)用腳本的時(shí)候最好用void(0)。
所以我們?cè)谧鲰?yè)面無(wú)刷新時(shí)用void(0)比較多,一般是Ajax,看一下Ajax的web頁(yè)面的話,一般都會(huì)看到有很多的void(0),所以在使用void(0)之前,最好先想一想這個(gè)頁(yè)面是否需要整體刷新。
該文章在 2010/11/25 23:16:49 編輯過(guò)