W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
使用過ajax的朋友經(jīng)常會(huì)見到這樣的代碼:here,這里面的void是一個(gè)操作符,該操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值。javascript:void(0) 在某些情況下會(huì)有瀏覽器不兼容的bug。下面我們先來看下javascript:void(0) 的基礎(chǔ)介紹及用法,然后再來看使用它會(huì)出現(xiàn)什么問題,該怎么解決。
提示:在學(xué)習(xí)一下內(nèi)容之前,你可以先通過javascript:void(0) 含義一節(jié)的內(nèi)容來了解或者復(fù)習(xí)什么是javascript:void(0) !
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expression 是一個(gè)要計(jì)算的 Javascript 標(biāo)準(zhǔn)的表達(dá)式。表達(dá)式外側(cè)的圓括號(hào)是選的,但是寫上去是一個(gè)好習(xí)慣。 (實(shí)現(xiàn)版本 Navigator 3.0)
你可以使用 void 操作符指定超級(jí)鏈接。表達(dá)式會(huì)被計(jì)算但是不會(huì)當(dāng)前文檔處裝入任何內(nèi)容。
下面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,當(dāng)用戶以后不會(huì)發(fā)生任何事。當(dāng)用戶鏈接時(shí),void(0) 計(jì)算為 0,但 Javascript 上沒有任何效果。
<a herf="javascript:void(0)">點(diǎn)擊此處什么也不會(huì)發(fā)生</a>
下面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,用戶單時(shí)會(huì)提交表單。
<a href="javascript:void(document.form.submit())">
單此處提交表單</a>
下面代碼則執(zhí)行了subgo()函數(shù),
<a href="javascript:void(0)"onclick="subgo()">點(diǎn)我</a>
在這里,javascript:void(0),沒啟實(shí)質(zhì)上的作用,它僅僅是一個(gè)死鏈接,執(zhí)行的函數(shù)是subgo()。
<a href="#" onclick="subgo()">點(diǎn)我</a>與<ahref="javascript:void(0)" onclick="subgo()">點(diǎn)我</a>區(qū)別。
<a href="javascript:void(0)"onclick="javascript:history.back();">返回 </a>
href=”#”,包含了一個(gè)位置信息.默認(rèn)的錨是#top,也就是網(wǎng)頁的上端,當(dāng)連續(xù)快速點(diǎn)擊此鏈接時(shí)會(huì)導(dǎo)致瀏覽器巨慢甚至崩潰。而javascript:void(0) 僅僅表示一個(gè)死鏈接,沒有任何信息。所以調(diào)用腳本的時(shí)候最好用void(0)
<a href="javascript:void(0);" >test</a>
<a href="javascript:;" >test</a>
<a href="####" >test</a> //使用2個(gè)到4個(gè)#,見的大多是"####",也有使用"#all"等其他的
<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>
<a href=”void(0);” rel=”nofollow”>
Click here to do nothing
</a>
<a href=”void(document.body.style.backgroundColor=’green’);” rel=”nofollow”>
Click here for green background
</a>
有可能是 javascript:void(0); 既保證了返回值是undefined,又保證如果連接點(diǎn)擊需要處理一些代碼,隨時(shí)將0替換掉就可以。<a href="javascript:void(0)" title="關(guān)閉" onclick="delbook();">關(guān)閉</a>
或者:<a href="javascript:;" title="關(guān)閉" onclick="delbook();">關(guān)閉</a>
以上兩種方法都可能會(huì)出現(xiàn)跳轉(zhuǎn)。
但是你會(huì)發(fā)現(xiàn):在執(zhí)行完clidk事件后會(huì)執(zhí)行javascript:void(0),或者javascript:;
<a href="javascript:void(0)" title="關(guān)閉" onclick="delbook();return false;">關(guān)閉</a>
或者<a href="javascript:void(0)" target="_self" title="關(guān)閉" onclick="delbook();">關(guān)閉</a>
使用return false;可以阻止javascript:void(0)去執(zhí)行。
使用target="_self"可以阻止會(huì)跳轉(zhuǎn)到其他頁面,因其是空函數(shù),則不會(huì)發(fā)生頁面刷新。
當(dāng)然,在使用target="_self"的情況下,你可以直接這樣寫。
<a href="javascript:delbook()" target="_self" title="關(guān)閉">關(guān)閉</a>
只要是頁面中有刷新或者跳轉(zhuǎn)動(dòng)作就要用上面的解決方法。JS的幾種跳轉(zhuǎn)方式:
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>
<a href="javascript:void(0)"onclick="openWin(3,this)">點(diǎn)我</a>
3.window.location.href='';
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: