今天,遇到一個別人挖的坑,問題是這樣的。
做了一個列表頁,可以篩選數據,有很多篩條件。主要是有input復選框和<a>undefined,javascript:; 也是返回 undefined,所以兩種方法是等價的。
回到問題本身,想想好奇怪,為什麼點擊<a>
<a href="#none"></a>
<a href="###"></a>
<a href="javascript:"></a>
<a href="javascript:;"></a>
<a href="javascript:void(0)"></a>
<a href="javascript :void(0);"></a>
第1種,點擊這個鏈接後,會讓頁面跳到頁面頂部,在location.href後面增加#號。
第2種,點擊這個鏈接後, 如果頁面裡面有id為none的元素,會執行錨點機制跳轉到這個元素上緣。
第3種,不跳轉,可以阻止默認的跳轉行為,但是這個在後端代碼中容易識別成注釋,後面的代碼不顯示,之前遇到過這種坑,之後再沒用過。後面幾種使用了javascript偽協議。我們上面已經對5和7進行了說明,想詳細了解void運算符,可前往https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void查看。
為什麼我要列出4和6呢,有時候有些同學會忘記寫分號,這樣在IE6下面點擊a標簽,會造成頁面中的gif暫停。