href="#"與href=“javascript:void(0)”的區(qū)別
#包含了一個(gè)位置信息,默認(rèn)的錨是#top也就是網(wǎng)頁(yè)的上端。二JavaScript:void(0),僅僅表示一個(gè)死鏈接。
在頁(yè)面很長(zhǎng)的時(shí)候回使用#來(lái)定位頁(yè)面的具體位置,具體格式為:#+id
如果要定義一個(gè)死鏈接請(qǐng)使用javascript:void(0)
<a href = "javascript:void(0);">點(diǎn)我沒(méi)有反應(yīng)</a>
<a href ="#pos">點(diǎn)我定位到指定位置!</a>
<br>
...
<br>
<p id="pos">尾部定位點(diǎn)</a>
想讓一個(gè)鏈接點(diǎn)擊后不做任何事情,或者響應(yīng)點(diǎn)擊而完成其他事情,可以設(shè)置其屬性 href=“#”,問(wèn)題:當(dāng)頁(yè)面有滾動(dòng)條時(shí),點(diǎn)擊后會(huì)返回到頁(yè)面頂部,用戶體驗(yàn)不好。頁(yè)面會(huì)自動(dòng)調(diào)回頂部,是因?yàn)椤?”默認(rèn)的瞄點(diǎn)位置是top,也就是網(wǎng)頁(yè)的上端,所以會(huì)出現(xiàn)這種情況。
href=“javascipt:void(0)” 含義:讓超鏈接去執(zhí)行一個(gè)js函數(shù),而不是去跳轉(zhuǎn)到一個(gè)地址,而void(0)表示一個(gè)空的方法,也就是不執(zhí)行js函數(shù)
<a href="javascript:void(0)">點(diǎn)擊</a> ? 點(diǎn)擊鏈接后不會(huì)回到網(wǎng)頁(yè)頂部
<a href="#">點(diǎn)擊</a> ? 點(diǎn)擊后會(huì)回到網(wǎng)面頂部
說(shuō)明:
1.javascript是偽協(xié)議,表示url的內(nèi)容通過(guò)javascript執(zhí)行。這樣會(huì)防止鏈接跳轉(zhuǎn)到其他頁(yè)面。這么做往往是為了保留鏈接的樣式,但不讓鏈接執(zhí)行實(shí)際操作
<a href="javascript:void(0)" onclick="window.open()">點(diǎn)擊連接后頁(yè)面不動(dòng),只打開(kāi)鏈接
<a href="#" onclick="javascript:return false;">作用一樣,但不同瀏覽器會(huì)有差異
2. href 直接使用javascript:void(0)在IE瀏覽器中可能會(huì)存在一些問(wèn)題,如造成gif動(dòng)畫(huà)停止播放等,所以最安全的方法還是使用“####”。為防止點(diǎn)擊鏈接后跳轉(zhuǎn)首頁(yè),onclick事件return false即可。
void是javascript的操作符,意思是:只執(zhí)行表達(dá)式,但沒(méi)有返回值。
使用javascript方法:
<a href="#" onclick="javascript:方法;return flase">文字</a>
<a href="javascript:void(0)" onclick=“javascript:方法;return flase”>文字</a> ?點(diǎn)擊a標(biāo)簽即可執(zhí)行方法函數(shù)
void操作符用法格式如下:
為了程序風(fēng)格良好,建議使用第二種帶上括號(hào)的
我們可以使用void操作符指定超級(jí)鏈接,如javascript:void(document.form.submit())。表達(dá)式會(huì)被計(jì)算但是不會(huì)在當(dāng)前文檔處裝入任何內(nèi)容,void(0)計(jì)算為0,但在javascript上沒(méi)有任何效果,也就是說(shuō)<a href="javascript:void(0)">的效果同<a href="javascript:void(1)">的效果是一樣的。
關(guān)鍵是只要知道void是javascript自身的操作符,它表示的是只執(zhí)行表達(dá)式,但沒(méi)有返回值。
使用過(guò)ajax常見(jiàn)<a href="javascript:doTest2();void(0);">href</a>.關(guān)于這里的void(0),該操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值。