您好,登錄后才能下訂單哦!
本篇內容介紹了“javascript中void(0)用法及常見問題有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
void 操作符用法格式如下: \1. javascript:void (expression) \2. javascript:void expression
expression 是一個要計算的 Javascript 標準的表達式。表達式外側的圓括號是選的,但是寫上去是一個好習慣。 (實現版本 Navigator 3.0)
你可以使用 void 操作符指定超級鏈接。表達式會被計算但是不會當前文檔處裝入任何內容。
下面的代碼創建了一個超級鏈接,當用戶以后不會發生任何事。當用戶鏈接時,void(0) 計算為 0,但 Javascript 上沒有任何效果。
<A HREF="javascript:void(0)">單此處什么也不會發生</A>
下面的代碼創建了一個超級鏈接,用戶單時會提交表單。
<A HREF="javascript:void(document.form.submit())">單此處提交表單</A>
下面代碼則執行了 subgo()函數,
<a href="javascript:void(0)"onclick="subgo()">點我</a>
在這里,javascript:void(0),沒啟實質上的作用,它僅僅是一個死鏈接,執行的函數是 subgo()。
<a href="#" onclick="subgo()">點我</a> 與 <ahref="javascript:void(0)" onclick="subgo()">點我</a>區別。 <a href="javascript:void(0)"onclick="javascript:history.back();"> 返回</a>
href=”#”,包含了一個位置信息.默認的錨是 #top,也就是網頁的上端,當連續快速點擊此鏈接時會導致瀏覽器巨慢甚至崩潰。而javascript:void(0) 僅僅表示一個死鏈接,沒有任何信息。所以調用腳本的時候最好用 void(0)
href="#" 與 javascript:void(0)的區別
href="#"方法其實也是空連接的意思,但是點擊之后會自動跳轉到頁面的最上面,因為用了這個方法就相當于點擊了一個錨記,但是這個錨記又沒寫ID,所以就默認跳轉到頁面頂部。從上面的例子也可以看出,當要執行某些處理,但是不整體刷新頁面的情況下,可以使用 void(0),但是在需要對頁面進行 refresh 的情況下,那就要仔細了。
其實我們可以這樣用,這句話會進行一次 submit 操作。那什么情況下用 void(0) 比較多呢,無刷新,當然是 Ajax了,看一下 Ajax 的 web 頁面的話,一般都會看到有很多的 void(0),所以在使用 void(0) 之前,最好先想一想,這個頁面是否需要整體刷新。
說白了,href="#"這種形式會整體刷新頁面,而 href="javascript:void(0)" 則不會。所以如果是空連接的話,還是推薦javascript:void(0)。
href = "#"當頁面有滾動條時,點擊后會返回到頁面頂端的解決辦法
目前有如下幾種解決辦法:
1、點擊鏈接后不做任何事情
<a href="javascript:void(0);" >test</a> <a href="javascript:;" >test</a> <a href="####" >test</a> //使用2個到4個#,見的大多是"####",也有使用"#all"等其他的
2、點擊鏈接后,響應用戶自定義的點擊事件
<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>
使用 javascript:void(0)會引起什么問題?
鏈接(href)直接使用 javascript:void(0)在 IE 中可能會引起一些問題,比如:造成 gif 動畫停止播放等,所以,最安全的辦法還是使用“####”。為防止點擊鏈接后跳轉到頁首,onclick 事件 return false 即可。 如果僅僅是想鼠標移過,變成手形,則可以使用。
我們可以使用 void 操作符指定超級鏈接,如 javascript:void(document.form.submit())。表達式會被計算但是不會在當前文檔處裝入任何內容,void(0)計算為 0,但在 JavaScript 上沒有任何效果,也就是說的效果同的效果是一樣的。
既然容易引起問題,為何新浪微博,淘寶等大站的首頁 JS 操作的 href 都是 javascript:void(0);呢?
有技術朋友表示看到了這個:
<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,又保證如果連接點擊需要處理一些代碼,隨時將 0 替換掉就可以。
href上 加 js 是為了防止連接跳轉,以前用 # 但是在部分瀏覽器下回跳轉到頁面頂部。這樣就不好了,于是有人想到了添加οnclick=“return false”但是這樣問題又來了,這樣做會阻止綁定的時間,比如我們用 jquery。于是就有了用 href=”javascript:void(0);”的寫法,這種做法開始確實是由一些寫 c 的人,因為編寫習慣而寫的。后來有人講 void 函數去掉了。就有了比較簡潔的寫法,其實在 a 在沒有連接的時候完全可以去掉href屬性或改用其他元素,只要加個指向時的鼠標樣式就可以了。根據個人習慣而定。
解決 IE 下使用 javascript:void(0)方法會跳轉的方法
一般情況下,在 IE 下的 A 標簽使用 onclick 的方法,在 href 屬性下都加上 javascript:void(0) 或者 javascript:;
原代碼如下:
<a href="javascript:void(0)" title="關閉" onclick="delbook();">關閉</a>
或者:
<a href="javascript:;" title="關閉" onclick="delbook();">關閉</a>
以上兩種方法都可能會出現跳轉。
但是你會發現:在執行完 clidk 事件后會執行 javascript:void(0),或者 javascript:;
解決辦法:
<a href="javascript:void(0)" title="關閉" onclick="delbook();return false;">關閉</a>
或者
<a href="javascript:void(0)" target="_self" title="關閉" onclick="delbook();">關閉</a>
使用 return false;可以阻止 javascript:void(0)去執行。
使用 target="_self"可以阻止會跳轉到其他頁面,因其是空函數,則不會發生頁面刷新。
當然,在使用 target="_self"的情況下,你可以直接這樣寫。
<a href="javascript:delbook()" target="_self" title="關閉">關閉</a>
只要是頁面中有刷新或者跳轉動作就要用上面的解決方法。
JS 的幾種跳轉方式:
1.
window.open(”url“)
2.用自定義函數
<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)">點我</a>
window.location.href='';
“javascript中void(0)用法及常見問題有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。