2012-01-23 46 views
7

我在問這個,因爲我有一些鏈接,像按鈕一樣通過ajax提取內容,所以我不需要任何關於它們的href。鏈接上是否需要href?

(我是從SEO的角度問這個)

回答

7

鏈接上是否需要href?

是的。沒有href屬性的錨不是鏈接。

我問這個,因爲我有一些鏈接,行爲像拉出低谷內容AJAX

如果你這樣做,那麼做是正確的按鈕。使用Unobtrusive JavaScriptpushState

只有當您使用指針設備並打開JS時纔有效的「鏈接」不是很好的鏈接。

我從SEO的角度問這個

搜索引擎不會執行你的JavaScript,因此僞鏈接(這取決於JS)是虛無的只是黑洞遠他們擔心)。

+2

哎喲 - 有點苛刻,而且看起來太黑和白。 –

1

他們不是絕對必需的,但你應該把href="#/"爲HREF,使其語義正確。如果沒有href=""屬性,則錨點可能會被解析爲頁面中的書籤,特別是在指定了name=""屬性的情況下。

+1

我建議你使用'#/'爲只使用''#原因瀏覽器跳轉到頁面頂部 –

+0

@MyHeadHurts感謝您的建議。編輯我的答案。 – Bojangles

+0

我建議你鏈接到更有用的東西,然後是不存在的頁面的一部分。 – Quentin

25

我假設通過「鏈接」你只是指a元素。如果這是真的,那麼:

號至少,不是在HTML5 draft specification

如果一個元素沒有href屬性,則該元素代表 佔位符裏的某個鏈接,否則可能已被放置,如果它 一直有關。

HTML 4.01 specification

製作者也可以創建指定沒有錨未指定的href,名稱或ID的A元素,即 。這些屬性 的值可以在稍後通過腳本進行設置。

+1

這不符合OP的情況。 OP不需要佔位符鏈接,她想要一個按鈕。 (哦,並且在早期的HTML版本中不需要'a @ href') –

+1

這是真的。但是,對「鏈接是否需要href」這個問題的回答是「否」。關於如何使用這種鏈接的語義問題完全是一個不同的問題。 OP代碼將通過不帶'href'屬性的驗證測試。 –

+0

嗯,不。從技術上講,如果它不包含'href'屬性,它甚至不是一個鏈接。 –

2

不,它不是。但是如果沒有設置href,鏈接可能會呈現不同的(下劃線和顏色)。

2

我不確定,但前一段時間我遇到了一個沒有href的「a」問題...點擊無法正常工作。但也許它只是一箇舊的瀏覽器。

4

如果您的鏈接的行爲類似於按鈕,則應該使用<button>元素。

2

根據它的規格,當你離開href時,你會發現瀏覽器實現了不同的默認樣式(例如不改變光標到指針)。要添加虛擬的HREF最常見的方法是

href="#" // But the event handler function must return false in order to avoid the default behaviour of jumping to the top of the page 

href="javascript:void()" // has the advantage of having no annoying default behaviour 
+0

很常見,但很糟糕。不要因爲有一百萬只蒼蠅在糞便中玩耍。 – Quentin

0

雖然它不是必需的,你應該將href添加到錨標記,因爲,良好,無一個href他們並不是真正的錨標記。

您可以在鏈接中添加一個'#'並添加一個onClick ='return false;'以防止點擊事件。如果您使用JQuery,則可以將event.preventDefault()添加到您的鏈接的點擊處理程序中。

從SEO的角度來看,我會去使用的標題爲錨標籤(避免-ve text-indent屬性。)