Ngăn chặn tabstop trên Một phần tử (liên kết neo) trong HTML


152

Có thể hủy bỏ <a href="...">khỏi bị chặn trong bất kỳ trình duyệt nào không? Tôi muốn làm điều này mà không cần Javascript.

Câu trả lời:


265

Một số trình duyệt hỗ trợ tabindex="-1"thuộc tính, nhưng không phải tất cả chúng, vì đây không phải là một hành vi tiêu chuẩn.


22
Ôi tuyệt! Cảm ơn! Tôi đã kiểm tra với FF3.5, IE8 và CH3 và nó hoạt động trong cả ba. Cảm ơn rất nhiều!
Robert Koritnik

1
Không phải lo lắng về điều này: giống như các quốc gia zzzzBov ở đây , HTML5 đã đến giải cứu và tiêu chuẩn hóa chức năng này. Vì vậy, bây giờ các trình duyệt có tội là những người bỏ lỡ điều này.
TechNyquist

1
Hãy nhớ rằng việc vô hiệu hóa tabstop trên một siêu liên kết đi ngược lại các quy tắc truy cập (ví dụ: mọi người sử dụng trình đọc màn hình, v.v.). Nếu bạn biết rằng đây không phải là vấn đề đối với cơ sở người dùng của bạn, thì nó sẽ ổn thôi.
Ricardo Sanchez

73

Các trình duyệt hiện đại, tuân thủ HTML5, hỗ trợ [tabindex]thuộc tính , trong đó giá trị -1sẽ ngăn thành phần được gắn thẻ.

Nếu giá trị là số nguyên âm
Tác nhân người dùng phải cho phép phần tử được tập trung, nhưng không được cho phép phần tử đạt được bằng cách sử dụng điều hướng tiêu điểm liên tiếp.


1
Đoạn trích tài liệu luôn luôn giúp đỡ. ;-) Điều này cho chúng tôi biết rằng những người không hỗ trợ điều này nằm trong số ít và họ có thể sẽ hỗ trợ sớm hay muộn.
Robert Koritnik

15

Bạn có thể áp dụng trình xử lý JQuery cho phần tử bạn muốn nhắm mục tiêu nhiều phần tử mà không có tab dừng.

$(document).ready(function () {
    $('.class').attr('tabindex', '-1');
});

Sẽ là một cách để làm điều đó ....


6

Tôi nghĩ rằng bạn có thể làm điều này bằng javascript, bạn ghi đè window.onkeypresshoặc onkeydown, bẫy nút tab và đặt tiêu điểm theo thứ tự mong muốn.


2
Tôi không biết liệu bạn đã kiểm tra các câu trả lời khác, đặc biệt là câu trả lời đã được trả lời khoảng một năm trước và đã giải quyết vấn đề này mà không cần sử dụng Javascript.
Robert Koritnik

2
Tôi đánh giá cao giải pháp thay thế ngay cả khi nó không giải quyết được OP cũng như câu trả lời được chấp nhận. Không cần phải chê bai.
Anthony DiSanti

@Anthony DiSanti: Đó là sự thật, nhưng trong trường hợp cụ thể này tôi vẫn không hiểu tại sao một người dùng đến javascript nếu một cái gì đó hoạt động tốt hơn? Vì vậy, nếu nó không phải là một câu trả lời cho câu hỏi này tại sao nó lại ở đây? Đừng bận tâm. Javascript thường là bước cuối cùng người ta sẽ làm nếu một số thứ nhất định không thể được thực hiện bằng cách khác. Và tôi xin lỗi @Ammosi nếu tôi đã xúc phạm bạn. Tôi không có ý thô lỗ. Cảm ơn câu trả lời muộn.
Robert Koritnik

7
Tôi đồng ý với việc tránh javascript nếu có giải pháp HTML hoặc CSS dựa trên tiêu chuẩn. Tuy nhiên, trong trường hợp này thì không. Người đăng ban đầu không cần hỗ trợ trình duyệt trước IE8 và FF3.5, nhưng đối với công việc của tôi, tôi cần hỗ trợ trở lại IE6. Do đó, giải pháp tabindex không được áp dụng. Không nên nản lòng cung cấp giải pháp làm việc duy nhất trong trình duyệt với thị phần lớn nhất.
Anthony DiSanti

4

Xóa hrefthuộc tính khỏi thẻ neo của bạn


Nếu tôi không thể thì sao?
Hakan Fıstık

Nếu sẵn sàng sử dụng javascript bất chấp câu hỏi để tránh loại giải pháp đó, để xóa thuộc tính href, hãy sử dụng tài liệu jquery onload với một cái gì đó như$('[href="whatever-the-url-is"]').removeAttr('href');
Jonas Lundman

6
LOL xóa href
quemished
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.