⒈ 連結的onclick 事件先執行,其次是href 屬性下的動作(頁跳轉,或javascript 偽連結) ;
⒉ 假設連結中同時存在href 與onclick,如果想讓href 屬性下的動作不執行,onclick 必須得到一個false 的回傳值;
⒊ 如果頁面過長有滾動條,且希望透過連結的onclick 事件執行操作。應將它的href 屬性設為javascript:void(0);,而不要是#,這可以防止不必要的頁面跳動;
⒋ 如果在連結的href 屬性中呼叫一個有回傳值的函數,目前頁面的內容將被此函數的回傳值取代;
⒌ 在按住Shift鍵的情況下會有所差異。
⒍ 在IE6.0裡以href的形式存取不到parentNode。盡量不要用javascript:協定做為A的href屬性,這樣不僅會導致不必要的觸發window.onbeforeunload事件,在IE裡面更會使gif動畫圖片停止播放。就這些,花了不少時間在這上面。
(IE6下)
<a href="javascript:void(0);" onclick="javascript:modifypassword();"><img src="images/blue/Modify.gif"/></a>
此種寫法IE6下面URL雖然請求了後台,但是前台沒有動靜,
正確的寫法應該為
<a href="javascript:void(0);" onclick="javascript:modifypassword();return false;"><img src="images/blue/Modify.gif"/></a>
個人收藏的幾個例子,供大家學習一下:
1:<a href="####"></a> 2:<a href="javascript:void(0)"></a> 3:<a href="javascript:void(null)"></a> 4:<a href="#" onclick="return false"></a> 5:<span style="cursor:hand"></span>(好像在FF中不能显示)
--------------------------- -------------------------------------------------- --
慎用JavaScript:void(0)今天測試的時候,明明程式已經執行,而且最後結果也是正確的,但是頁面就是不刷新。
在FireFox2.0和ie7下測試,結果卻是正常的,但IE6卻偏偏不刷新!仔細調查了一下,發現頁面連結的是e3c9de0f3f8fe75ade5d5e9fafa00a55 測試5db79b134e9f6b82c0b36e0489ee08ed,問題就出在這個void(0 )上!
讓我們先來看看JavaScript中void(0)的意思:JavaScript中void是一個操作符,該操作符指定要計算一個表達式但是不傳回值。
void 運算子用法格式如下:
1. javascript:void (e-xpression) 2. javascript:void e-xpression
e-xpression是一個要計算的 JavaScript 標準的運算式。表達式外側的圓括號是可選的,但是寫上去是一個好習慣。我們可以使用 void 運算子指定超級連結。表達式會被計算但是不會在目前文件處裝入任何內容。面的程式碼創建了一個超級鏈接,當用戶點擊以後不會發生任何事。當使用者點擊連結時,void(0) 計算為 0,但在 JavaScript 上沒有任何效果。 0408054196e655f677973fb4d7c99865單擊此處什麼也不會發生5db79b134e9f6b82c0b36e0489ee08ed也就是說,要執行某些處理,但是不整體刷新頁面的情況下,可以使用void(0),但是在需要對頁面進行refresh的情況下,那就要仔細了。其實我們可以這樣用2c1e2de5a0ac0d59dc8190569d3cab10,這句話會進行一次submit運算。那什麼情況下用void(0)比較多呢,無刷新,當然是Ajax了,看一下Ajax的web頁面的話,通常都會看到有很多的void(0),:) ,所以在使用void(0 )之前,最好先想想,這個頁面是否需要整體刷新。
以上是在a標籤的href與onclick中使用JavaScript的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!