我已經看到不時在網頁中使用以下href。但是,我不明白這是試圖做什麼或技術。有人可以詳細說明嗎?href表達式<a href="javascript:;"></a>做什麼?
<a href="javascript:;"></a>
我已經看到不時在網頁中使用以下href。但是,我不明白這是試圖做什麼或技術。有人可以詳細說明嗎?href表達式<a href="javascript:;"></a>做什麼?
<a href="javascript:;"></a>
一個<a>
元素無效HTML,除非它具有href
或name
屬性。
如果您希望它作爲鏈接正確呈現(例如帶下劃線,手形指針等),則只有在具有href
屬性時纔會這樣做。因此
這樣的代碼有時用作製備鏈路的方法,但不必提供在href
屬性的實際URL。開發者顯然希望鏈接本身不做任何事情,而這是他知道的最簡單的方式。
他可能在其他地方有一些JavaScript事件代碼,當鏈接被點擊時觸發,這將是他想要實際發生的事情,但他希望它看起來像一個正常的<a>
標記鏈接。
一些開發人員使用href='#'
爲了同樣的目的,但是這會導致瀏覽器跳轉到該頁面的頂部,這可能並不希望這樣。而且他不能簡單地將href留空,因爲href=''
是回到當前頁面的鏈接(即它導致頁面刷新)。
有辦法解決這些問題。在href
中使用空位的Javascript代碼就是其中之一,雖然它不是最好的解決方案,但它確實有效。
出於好奇,有沒有更好的方法來做到這一點? –
一個更好的做法是,如果事件函數執行'return false;'或'event.preventDefault()',那麼'href'動作永遠不會被調用,所以你可以在那裏放一些更明智的東西。 – Spudley
沒有'href'或'name'的'不是無效的;這可以使用驗證器輕鬆檢查。 –
它被點擊時(除非JavaScript事件綁定到它)製作一個鏈接的方法什麼都不做。
它運行的JavaScript,而不是按照一個鏈接的方式:
<a href="Javascript: doStuff();">link</a>
在沒有實際運行JavaScript(如你的例子),它什麼都不做。
是的,所以它調用JS事件/方法.. – Rob
啊,我明白了。它有效地禁用了鏈接。 –
<a href="javascript:void(0);"></a>
javascript:
告訴瀏覽器要編寫JavaScript代碼
http://stackoverflow.com/a/1293130/681538 – Alex
<a href="javascript:alert('Hello');"></a>
僅僅是速記:
<a href="" onclick="alert('Hello'); return false;"></a>
一種,但它不是一個真正的「喜歡喜歡」比較。首先使用它的陷阱就是一個原因。 – Lankymart
基本上而不是使用鏈接到移動網頁(或錨),使用此方法啓動了一個JavaScript函數(s)
<script>
function doSomething() {
alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>
點擊鏈接將觸發警報。
有幾種機制可以避免鏈接到達目的地。問題中的問題並不太直觀。
清潔選項是使用href="#no"
其中#no
是文檔中的非定義錨點。
您可以使用更多語義名稱,如#disable或#action來提高可讀性。
該方法的優點:
缺點的:
由於<a>
元素不作爲紐帶,在這些情況下,最好的選擇是不使用<a>
元素,但一個<div>
並提供所需的鏈接般的風格。
我也喜歡非定義的錨點。然而,另一個缺點是它將錨點添加到瀏覽器歷史記錄中,所以我選擇在OP中使用空白JS方法。 –
請參閱本:
<a href="Http://WWW.stackoverflow.com">Link to the website opened in different tab</a>
<a href="#MyDive">Link to the div in the page(look at the chaneged url)</a>
<a href="javascript:;">Nothing happens if there is no javaScript to render</a>
舊線程,但覺得還是補充說,之所以開發人員使用此結構是不是創造一個死鏈接,但由於某種原因JavaScript網址,不要通過引用正確地激活html元素。
例如handler_function(this.id)
作爲onClick
,但不作爲JavaScript網址。
因此,在編寫符合標準的迂迴代碼時,需要手動調整每個超鏈接的調用,或者可以編寫一次並在任何地方使用的稍微不標準的代碼。
始終正常顯示的鏈接最好的辦法是用CSS如下:
a {cursor: pointer !important}
應該避免跟隨非必要之類的東西在線程中提到。
如果我沒有弄錯,你可以調用一個JS方法。javascript:SomeFunction() – Rob
它不會嘗試做任何事情,不能用合適的點擊處理程序來處理。您應該避免這種情況,因爲它很醜,無法訪問,並導致人們使用'javascript:'方案不應該使用它('onclick =「javascript:...」') – Gareth
檢查了這一點:http:// stackoverflow。 com/a/138233/908879 – ajax333221