2012-01-23 8 views
7

Tôi hỏi điều này vì tôi có một số liên kết hoạt động giống như các nút kéo ra ajax máng nội dung, vì vậy tôi không cần bất kỳ href nào trên chúng.Yêu cầu href trên liên kết?

(Tôi đang yêu cầu này từ quan điểm SEO)

Trả lời

7

Yêu cầu href trên liên kết?

Có. Các neo không có thuộc tính href không phải là liên kết.

tôi yêu cầu này bởi vì tôi có một số liên kết mà hành động như các nút mà kéo ra nội dung máng ajax

Nếu bạn đang làm điều đó, sau đó làm điều đó đúng. Sử dụng Unobtrusive JavaScriptpushState.

"Liên kết" chỉ hoạt động nếu bạn đang sử dụng thiết bị trỏ và đã bật JS không phải là liên kết tốt.

tôi yêu cầu này từ quan điểm SEO

cụ tìm kiếm sẽ không thực hiện JavaScript, do đó giả liên kết (mà phụ thuộc vào JS) là lỗ chỉ đen của hư vô như xa như họ có liên quan).

+2

Ouch - loại khắc nghiệt, và có vẻ quá đen và trắng. –

1

Họ đang không hoàn toàn cần thiết, tuy nhiên có lẽ bạn nên đặt href="#/" như href để làm cho nó ngữ nghĩa chính xác. Không có thuộc tính href="", neo có thể được phân tích cú pháp dưới dạng dấu trang trong trang, đặc biệt nếu thuộc tính name="" được chỉ định.

+1

Tôi đề nghị bạn sử dụng '# /' trình duyệt để nhảy lên đầu trang –

+0

@MyHeadHurts Cảm ơn bạn đã giới thiệu. Đã chỉnh sửa câu trả lời của tôi. – Bojangles

+0

Tôi đề nghị bạn liên kết đến một cái gì đó hữu ích hơn sau đó một phần của trang không tồn tại. – Quentin

25

Tôi giả định rằng theo "liên kết", bạn chỉ đơn giản là các yếu tố a. Nếu đó là sự thật thì:

số Ít nhất, không phải trong HTML5 draft specification:

Nếu một yếu tố không có thuộc tính href, sau đó các phần tử đại diện cho một placeholder cho nơi một liên kết có thể khác đã được đặt , nếu nó có liên quan.

Từ HTML 4.01 specification:

Tác giả cũng có thể tạo ra một Một yếu tố mà xác định không có neo, ví dụ: mà không xác định href, tên, hoặc id. Giá trị cho các thuộc tính này có thể được đặt sau đó thông qua tập lệnh.

+1

Điều này không khớp với tình huống của OP. OP không muốn có liên kết giữ chỗ, cô ấy muốn một nút. (Oh, và 'a @ href' cũng không được yêu cầu trong các phiên bản HTML trước đó.) –

+1

Điều đó đúng. Tuy nhiên, câu trả lời cho câu hỏi "Yêu cầu href trên liên kết" là "không". Câu hỏi về ngữ nghĩa của cách sử dụng các liên kết như vậy là một câu hỏi hoàn toàn khác nhau. Mã OPS sẽ vượt qua một bài kiểm tra xác thực không có thuộc tính 'href'. –

+0

Ồ, không. Về mặt kỹ thuật, nó thậm chí không phải là một liên kết nếu nó không chứa thuộc tính 'href'. –

2

không có. Nhưng các liên kết có thể hiển thị khác nhau (gạch chân và màu) nếu href không được đặt.

2

Tôi không chắc chắn, nhưng một số thời gian trước đây tôi đã gặp sự cố với "a" mà không có href ... các nhấp chuột không hoạt động. Nhưng có lẽ đó chỉ là một trình duyệt cũ.

4

Nếu bạn có liên kết hoạt động như nút, có thể bạn đã sử dụng phần tử <button>.

2

Theo thông số kỹ thuật, bạn cũng sẽ thấy các trình duyệt triển khai kiểu dáng mặc định khác nhau (ví dụ: không thay đổi con trỏ thành con trỏ) khi bạn rời khỏi href. Các phương pháp phổ biến nhất để thêm hrefs giả là

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

Thông thường, nhưng khủng khiếp. Không chơi trong phân bón chỉ vì một triệu ruồi làm. – Quentin

0

Trong khi nó không cần thiết, bạn nên thêm href để các thẻ neo, bởi vì, cũng không có một href họ không thực sự neo thẻ.

Bạn có thể thêm '#' vào liên kết và thêm onClick = 'return false;' để ngăn sự kiện nhấp chuột. Nếu bạn đang sử dụng JQuery, bạn có thể thêm event.preventDefault() vào trình xử lý nhấp chuột của mình cho các liên kết của mình.

Từ góc độ SEO, tôi muốn sử dụng tiêu đề cho thẻ neo (tránh thuộc tính văn bản thụt đầu dòng.)