a標籤中onclick和href的使用

鏈接的 onclick 事件被先執行,其次是 href 屬性下的動作(頁面跳轉,或 javascript 僞鏈接);
假設鏈接中同時存在 href 與 onclick,如果想讓 href 屬性下的動作不執行,onclick 必須得到一個 false 的返回值。不信,你可以將 goGoogle 函數中的 return false 註釋掉;
如果頁面過長有滾動條,且希望通過鏈接的 onclick 事件執行操作。應將它的 href 屬性設爲 javascript:void(0);,而不要是 #,這可以防止不必要的頁面跳動;
如果在鏈接的 href 屬性中調用一個有返回值的函數,當前頁面的內容將被此函數的返回值代替;
在按住Shift鍵的情況下會有所區別。
今天我遇到的問題,在IE6.0裏以href的形式訪問不到parentNode。
儘量不要用javascript:協議做爲A的href屬性,這樣不僅會導致不必要的觸發window.onbeforeunload事件,在IE裏面更會使gif動畫圖片停止播放

下面是自己遇到的:

如果不設置 href屬性在IE6下面會不響應hover。雙擊後會選中標籤的父容器而非這個一a標籤(IE下都存在這一問題)。
<a href="javascirpt:fn(this)"> <a οnclick="fn(this)"> 假定我們有個fn方法,需要取到這個元素,第一個方法傳入的this是空值。

所以,比較推薦的寫法是<a href="javascript:void(0)" οnclick="fn(this)">


下面代碼則執行了subgo()函數,

<a href="javascript:void(0)" οnclick="subgo()">點我</a>

在這裏,javascript:void(0),沒啓實質上的作用,它僅僅是一個死鏈接,執行的函數是subgo()。

<a href="http://blog.163.com/wb_zhaoyuwei/blog/#" οnclick="subgo()">點我</a>與<a href="javascript:void(0)" οnclick="subgo()">點我</a>區別。

實際上 #包含了一個位置信息默認的錨是#top 也就是網頁的上端 ,而javascript:void(0) 僅僅表示一個死鏈接,沒有任何信息。所以調用腳本的時候最好用void(0)

href一般是指向一個URL地址,也可以調用javascript ,如href="javascript:xxx();",文檔中推薦這樣寫:<a href="http://blog.163.com/wb_zhaoyuwei/blog/ javascript:void(0)" οnclick="xxx();">xx</a>,但是這種方法在複雜環境有時會產生奇怪的問題,儘量不要用javascript:協議做爲A的href屬性,這樣不僅會導致不必要的觸發window.onbeforeunload事件,在IE裏面更會使gif動畫圖片停止播放。

我們知道鏈接的 onclick 事件被先執行,其次是 href 屬性下的動作(頁面跳轉,或 javascript 僞鏈接),如果不想執行href 屬性下的動作執行,onclick 需要要返回 false ,一般是這樣寫οnclick="xxx();return false;". 

發佈了20 篇原創文章 · 獲贊 1 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章