歡迎您來訪https://leezhang521.github.io
a標(biāo)簽的javascript:void(0)
(一)
在寫頁面的時(shí)候快压,點(diǎn)擊鏈接,有兩種情況九巡,一種是跳轉(zhuǎn)到另一個(gè)頁面聚凹,一種是只有點(diǎn)擊鏈接效果而沒有產(chǎn)生跳轉(zhuǎn)到另一個(gè)頁面的效果甩苛。當(dāng)我們給a標(biāo)簽設(shè)置屬性href="#"的時(shí)候仆葡,點(diǎn)擊鏈接后會(huì)回到頁面頂部赏参,沒有很好的用戶體驗(yàn)
解決的辦法有如下幾種
-
點(diǎn)擊鏈接后不出現(xiàn)任何效果
<a href="javascript:void(0);" >test</a> <a href="javascript:;" >test</a> <a href="####" >test</a> //使用2個(gè)到4個(gè)#志笼,見的大多是"####"沿盅,也有使用"#all"等
-
點(diǎn)擊鏈接后,響應(yīng)用戶自定義的點(diǎn)擊事件
<a href="javascript:void(0)" onclick="doSomething()">test</a> <a href="#" onclick="doSomething();return false;">什么問題都解決了,包括瀏覽器不兼容問題</ a> //或者直接使用href="" <a href="#" onclick="alert();event.returnValue=false;">test</a>
一些小建議
1.建議少寫javascript:void(0);
2.鏈接(href)直接使用javascript:void(0)在IE中可能會(huì)引起一些問題纫溃,比如:造成gif動(dòng)畫停止播放等腰涧,所以,最安全的辦法還是使用“####”紊浩。為防止點(diǎn)擊鏈接后跳轉(zhuǎn)到頁首窖铡,onclick事件return false即可。
3.若只是顯示鼠標(biāo)移過坊谁,變成手形费彼,可以使用樣式<span style="cursor:pointer" onclick="foo()">Click Me!</span>
注釋:
1.在這里的void是javascript的操作符,表示只執(zhí)行表達(dá)式口芍,但沒有返回值箍铲,而void的操作符用法格式是
javascript:void (expression)
javascript:void expression
在這里void是javascipt自身的操作符,它表示的是只執(zhí)行表達(dá)式鬓椭,但沒有返回值颠猴!expression 是一個(gè)要計(jì)算的 Javascript 標(biāo)準(zhǔn)的表達(dá)式。
另外頁面會(huì)自動(dòng)調(diào)回頂端小染,是因?yàn)?#"默認(rèn)的瞄點(diǎn)位置是top翘瓮,所以會(huì)出現(xiàn)這種情況。
表達(dá)式會(huì)被計(jì)算但是不會(huì)在當(dāng)前文檔處裝入任何內(nèi)容裤翩,void(0)計(jì)算為0资盅,但在JavaScript上沒有任何效果,也就是說 <a href="javascript:void(0)">
的效果同<a href="javascript:void(1)">
的效果是一樣的。也就是表達(dá)式會(huì)被計(jì)算呵扛,但在javascript中沒有任何效果振峻。
在這里舉個(gè)例子
<a href="javascript:void(document.form.submit())">點(diǎn)擊提交</a>
區(qū)別
1.a href=#與 a href=javascript:void(0) 的區(qū)別
1)#包含了一個(gè)位置信息,默認(rèn)的錨是#top 择份,也就是網(wǎng)頁的上端
2)javascript:void(0) 只表示一個(gè)鏈接扣孟,調(diào)用腳本的時(shí)候用這個(gè)比較合適,又或者給標(biāo)簽添加一個(gè)點(diǎn)擊事件荣赶,比如<input onclick> ,<div onclick>
(二)
1.可采用的鏈接辦法如下
1) window.open("url")
2)自定義函數(shù)
<script>
function openWin(tag,obj){
obj.target="_blank";
obj.href = "Web/Substation/Substation.aspx?stationno="+tag;
obj.click();
}
</script>
javascript:void(0);在瀏覽器上有兼容性問題凤价,個(gè)人認(rèn)為javascript:;比較適用
(三)總結(jié)
1.針對(duì)"#",出現(xiàn)調(diào)到頂部的情況
1:<a href="####"></a>
2:<a href="javascript:void(0)"></a>
3:<a href="javascript:void(null)"></a>
4:<a href="#" onclick="return false"></a>
5:<span style="cursor:hand"></span>(好像在FF中不能顯示)