要用 href="#" 或是 javascript:void(0)
發表於 2009-11-21 10:24:47| 分類: 網站開發
在AJAX盛行的時代,傳統的HTML anchor(連結)語法中,瀏覽新網頁的功能已經逐漸被攔截onclick的事件函數給取代。往往我們想要讓用戶點擊一個連結,或隱藏在圖片背後的連結,觸發一個javascript函數,此時,anchor的語法該寫成:(1) <a href="#" onclick="alert('hi');return false;"> 這樣,或是 (2) <a href="javascript:void(0)" onclick="alert('hi')">好呢?
事實上,兩者並沒有一定的答案,只是喜好問題。但根據 這篇討論二者優劣 的文章中各方意見,第一種方式可適用於瀏覽器關閉Javascript的情況,較之第二種方式來得通用。
無論如何,重點是要記得在onclick事件指定函數後方,加上 "return false;" 這樣的敘述,以確保這個點擊連結的事件不會繼續被觸發至網頁其他物件。
在Rails的 ActionView::Helpers::JavaScriptHelper 當中有個 link_to_function,使用後產生出來的HTML語法屬於第一種語法,由此可以佐證第一種方法應該更被技術人員接受。
