<a/>標簽的“href”屬性可以是一個有效的URL,表示跳轉的目的地,除此之外,href還可以是一段javascript代碼。當為“href”設置javascript代碼時,格式如下:<a href=”javascript:……;” />。當點擊這種形式的超鏈接時,瀏覽器將執行“href”中設置的javascript代碼。需要注意的是,如果代碼執行之后的返回值是一個有效值(除“undefined”之外的值)的話,當前頁面的內容將會被返回值替換!
W3C標准不推薦使用這種方法來調用javascript,這樣會導致一些問題,比如觸發不必要的“onbeforeunload”事件,等等。我們可以通過下面推薦的一些方法,來更加保險的調用javascript代碼。
方式一:<a href=”javascript:void(0);” onclick=”.……” />。使用void運算符來避免返回有效值,void運算符對任何值返回“undefined”。
方式二:<a href=”javascript:;” onclick=”……” />。使用一條空的javascript語句,同樣不會有任何有效值返回。
方式三:<a href=”#” onclick=”……;return false” />。通過在事件處理函數中返回“false”,來取消觸發事件的元素的默認行為。
附錄:<a/>標簽“href”屬性不同賦值的效果。
href | effect |
有效的URL | 跳轉到URL所指向的資源。 |
"#" | 跳轉到當前頁面的頂部。 |
"#XXX" | "XXX"是本頁面中其他<a/>標簽的name屬性值,或者是其他元素的id的值。跳轉到頁面中對應元素所在的位置。 |
"" | 空白字符串,這將導致點擊時重新加載當前頁面。 |