眾所周知,a標(biāo)簽的最重要功能是實(shí)現(xiàn)超鏈接和錨點(diǎn)。而且,大多數(shù)人認(rèn)為a標(biāo)簽最重要的作用是實(shí)現(xiàn)超鏈接,今天我剛好碰到a標(biāo)簽的一種寫法<a href="javascript:;"></a>,所以就來整理下a標(biāo)簽中href的幾種用法。
一、Js的幾種調(diào)用方法
-
a href="javascript:js_method();"
這是比較常用的一種方法,但是這種方法在傳遞this等參數(shù)的時(shí)候很容易出現(xiàn)問題,當(dāng)javascript:協(xié)議作為a的href屬性的時(shí)候會(huì)導(dǎo)致不必要的觸發(fā)window.onbeforeunload事件,在IE中更會(huì)使gif動(dòng)畫圖片停止播放。W3C標(biāo)準(zhǔn)不推薦在href里面執(zhí)行javascript語句
-
a href="javascript:void(0);" onclick="js_method()"
這是很多網(wǎng)站常用的方法,也是最周全的方法,onclick方法負(fù)責(zé)執(zhí)行js函數(shù),而void是一個(gè)操作符,void(0)返回undefined,地址不發(fā)生跳轉(zhuǎn)。而且這種方法不會(huì)像第一種方法一樣直接將js方法暴露在瀏覽器的狀態(tài)欄。
-
a href="javascript:;" onclick="js_method()"
這種方法跟跟2種類似,區(qū)別只是執(zhí)行了一條空的js代碼。
-
a href="#" onclick="js_method()"
這種方法也是網(wǎng)上很常見的代碼,#是標(biāo)簽內(nèi)置的一個(gè)方法,代表top的作用。所以用這種方法點(diǎn)擊后網(wǎng)頁后返回到頁面的最頂端。
-
a href="#" onclick="js_method();return false;"
這種方法點(diǎn)擊執(zhí)行了js函數(shù)后return false,頁面不發(fā)生跳轉(zhuǎn),執(zhí)行后還是在頁面的當(dāng)前位置。
綜合上述,在a中調(diào)用js函數(shù)最適當(dāng)?shù)姆椒ㄍ扑]使用:
<a href="javascript:void(0);" onclick="js_method()"></a>
<a href="javascript:;" onclick="js_method()"></a>
<a href="#" onclick="js_method();return false;"></a>
二、href="#"的作用
a中href="#"表示回到最頂部。如果當(dāng)前頁面中需要滾動(dòng)的話,那么用這種方式就可以直接回到頂部。比如有些網(wǎng)站會(huì)在右下角制作一個(gè)圖標(biāo)按鈕,回到頂部,那么此時(shí)可以考慮用這種最簡(jiǎn)單的方式實(shí)現(xiàn)。
<span><a href="#">回到最頂端</a></span>
三、href="URL"的作用
-
URL為絕對(duì)URL
此時(shí)指向另一個(gè)站點(diǎn),比如href="https://google.com",那么點(diǎn)擊時(shí)就會(huì)直接跳轉(zhuǎn)到這個(gè)鏈接的頁面。
-
URL為相對(duì)URL
此時(shí)指向站點(diǎn)內(nèi)的某個(gè)文件,比如href="/main.doc",那么點(diǎn)擊時(shí)就會(huì)直接下載文件。
-
**錨點(diǎn)URL **
此時(shí)指向頁面中的錨,比如href="#top",那么點(diǎn)擊時(shí)就會(huì)到當(dāng)前頁面中id="top"的這個(gè)錨點(diǎn),實(shí)現(xiàn)當(dāng)前頁面的所謂跳轉(zhuǎn)。用的最多就是在可滾動(dòng)頁面中,添加菜單,可以直接回到頁面中的某個(gè)部分的內(nèi)容。
即所有的三種代碼樣例:
<a >超鏈接</a>
<a href="#">回到最頂端</a>
<a href="css/style.css">文件鏈接</a>