2013-08-23 34 views
6

Tôi gặp phải một hành vi rất lạ trên Chrome có vẻ như là lỗi đối với tôi: khi bạn nhấp vào liên kết, liên kết sẽ không nhận được tiêu điểm. Tồi tệ hơn, cơ thể thay vào đó lấy nét.Liên kết không nhận được tiêu điểm khi được nhấp vào Chrome

Hành vi này có thể được quan sát thấy ở đây: http://jsfiddle.net/YfbR7/4/ (see code sample here)

Đây có phải là một lỗi? Đây có phải là hành vi tiêu chuẩn này không? Có cách nào khác để làm cho các liên kết nhận được tiêu điểm trên chuột xuống, giống như trên các trình duyệt khác không?

+0

Hành vi tương tự cũng áp dụng cho hộp kiểm, xem câu hỏi tại đây: http://stackoverflow.com/questions/18400190/checkboxes-do-not-receive-the-focus-when-clicked-on-chrome –

Trả lời

6

Thêm chỉ mục tab vào thẻ neo nó sẽ hoạt động, nó không phải là lỗi của nó.

<a href="#" tabindex="1">Click me</a> 
+0

Wow I không mong đợi điều đó! Nó hoạt động rất tốt. Tôi gặp vấn đề tương tự với các hộp kiểm, nhưng tôi sẽ mở một câu hỏi mới cho câu hỏi đó khi bạn đã trả lời câu hỏi gốc. –

+0

Và đây là giải thích lý do tại sao điều này sẽ giúp: "Bằng cách cho nó một tabindex bạn có thể làm cho bất kỳ phần tử nào bạn thích có thể tập trung. Các sự kiện tiêu điểm và mờ sẽ hoạt động trên các phần tử như vậy". Hoạt động trên tất cả các trình duyệt: http://www.quirksmode.org/dom/events/blurfocus.html –

2

Ngoài các câu trả lời được chấp nhận:

Kể từ khi thiết lập tabindex-1 sẽ thay đổi TAB hành vi, tôi khuyên bạn nên thiết lập nó để -1 thay vì: nó sẽ không phá vỡ TAB hàng hải và sẽ vẫn cho phép nó không bị tập trung.

<a href="#" tabindex="-1">Example</a> 

Bằng cách này, here's a very nice article về những mối quan ngại này.


Lưu ý: điều tương tự cũng xảy ra với tôi, nhưng chỉ trên Safari: có thể Chrome đã khắc phục sự cố đó.