2013-02-10 29 views
0

爲什麼開發人員使用href="javascript:;"爲什麼開發人員使用href等於javascript?

e.g.:Content A標籤的:

<a class="anchor" title="title" href="javascript:;" id="someId">...</a> 
+0

這不會送你去一個網址,而不是將運行在點擊 – polin 2013-02-10 10:04:27

+0

與JavaScript JavaScript代碼會跑?如果href是空的,會發生什麼?它不會運行JavaScript? – ciochPep 2013-02-10 10:05:56

+0

在這種情況下,它不會做任何事情 – polin 2013-02-10 10:08:23

回答

1

javascript:僞協議告訴瀏覽器,接下來是在點擊鏈接時應該執行JavaScript代碼。在你的例子中,下面是一個沒有操作,所以點擊鏈接什麼也不做。通常在鏈接沒有被用作鏈接而是用作按鈕時使用,編碼器需要的實際行爲由處理器指定。

+0

我明白了。是瀏覽器還是其他開發者?瀏覽器對這些信息有什麼作用? – ciochPep 2013-02-10 10:07:22

+1

這個答案是正確的,但需要更多信息。在'href'中'javascript:'的使用預示了DOM0處理程序的存在,例如'onclick'等。一旦'onclick'存在,'javascript:'應該不再被使用。 – 2013-02-10 10:07:35

+0

@ciochPep:正如我所說的那樣,瀏覽器會將'javascript:'後面的內容解釋爲JavaScript代碼並執行它。在這種情況下,該代碼什麼都不做。所以你最終得到的東西看起來像一個鏈接,但不是鏈接。 – 2013-02-10 10:08:19

0

從我的使用經驗,如果人們使用<a href="www.google.com">我可以右鍵點擊並打開一個新的標籤。但如果是href=javascript:openLink()我無法打開一個新的標籤

0

好問題上。它的鏈接不會做任何事情。開發者可能使用Jquery的click event或類似的東西動態地添加javascript函數。

這似乎是一箇舊的壞習慣,人有。他們可能需要href的風格,但不希望它的功能。你可以很容易地做到這一點,而無需使用href。某種程度上,他們說「這是一個鏈接的價值」,然後立即「忽略我的鏈接的價值」。

這是一個很好的討論在這裏:Unobtrusive Javascript

According the the w3schools爲一個href的值應該是一個URL或腳本。當有人做href="javascript:;"

他們用一個腳本,什麼都不做。他們只是這樣做,所以他們可以使用樣式/選項卡href提供...在我看來,應該採用另一種方式,如使用CSS類。

同樣根據the w3schools如果href不存在,標籤就不能使用某些其他屬性,但在HTML5中,標籤只能用於超鏈接。

相關問題