javascript:void(0)用法和常見問題
javascript:void(0)的用法
下面的程式碼建立了一個超級連結,當用戶以後不會發生任何事。當用戶連結時,void(0) 計算為 0,但 Javascript 上沒有任何效果。
<a HREF="javascript:void(0)">單此處什麼也不會發生</a>
下面的程式碼建立了一個超級連結,使用者單時會提交表單。
<a HREF="javascript:void(document.form.submit())"> 單此處提交表單</a>
下面程式碼則執行了subgo()函式,在這裡,javascript:void(0),沒啟實質上的作用,它僅僅是一個死連結,執行的函式是subgo()。
<a href="#" onclick="subgo()">點我</a>與<a href="javascript:void(0)" onclick="subgo()">點我</a>區別。
<a href="javascript:void(0)" onclick="javascript:history.back();">返回 </a>
href=”#”,包含了一個位置資訊.預設的錨是#top,也就是網頁的上端,當連續快速點選此連結時會導致瀏覽器巨慢甚至崩潰。而javascript:void(0) 僅僅表示一個死連結,沒有任何資訊。所以呼叫指令碼的時候最好用void(0)
href="#"與javascript:void(0)的區別
href="#"方法其實也是空連線的意思,但是點選之後會自動跳轉到頁面的最上面,因為用了這個方法就相當於點選了一個錨記,但是這個錨記又沒寫ID,所以就預設跳轉到頁面頂部。從上面的例子也可以看出,當要執行某些處理,但是不整體重新整理頁面的情況下,可以使用void(0),但是在需要對頁面進行refresh的情況下,那就要仔細了。
說白了,href="#"這種形式會整體重新整理頁面,而href="javascript:void(0)" 則不會。所以如果是空連線的話,還是推薦javascript:void(0)。
href = "#"當頁面有滾動條時,點選後會返回到頁面頂端的解決辦法
1、點選連結後不做任何事情
<a href="javascript:void(0);" >test</a> <a href="javascript:;" >test</a> <a href="####" >test</a> //使用2個到4個#,見的大多是"####",也有使用"#all"等其他的
2、點選連結後,響應使用者自定義的點選事件
<a href="javascript:void(0)" onclick="doSomething()">test</a> <a href="#" onclick="doSomething();return false;">什麼問題都解決了,包括瀏覽器不相容問題</a> //或者直接使用href="" <a href="#" onclick="alert();event.returnValue=false;">test</a>
使用javascript:void(0)會引起什麼問題?
連結(href)直接使用javascript:void(0)在IE中可能會引起一些問題,比如:造成gif動畫停止播放等,所以,最安全的辦法還是使用“####”。為防止點選連結後跳轉到頁首,onclick事件return false即可。 如果僅僅是想滑鼠移過,變成手形,則可以使用。
解決IE下使用javascript:void(0)方法會跳轉的方法
使用return false;可以阻止javascript:void(0)去執行。
使用target="_self"可以阻止會跳轉到其他頁面,因其是空函式,則不會發生頁面重新整理。
<a href="javascript:void(0)" title="關閉" onclick="delbook();return false;">關閉</a>
<a href="javascript:void(0)" target="_self" title="關閉" onclick="delbook();">關閉</a> //與下面等價
<a href="javascript:delbook()" target="_self" title="關閉">關閉</a>