Không có javascript javascript: void (0) có nghĩa là gì?

Ngoài câu trả lời kỹ thuật, javascript:voidcó nghĩa là tác giả đang làm sai.

Không có lý do chính đáng để sử dụng javascript:URL giả (*). Trong thực tế, nó sẽ gây nhầm lẫn hoặc lỗi nếu bất kỳ ai cũng nên thử những thứ như ‘liên kết đánh dấu’, ‘liên kết mở trong một tab mới’, v.v. Điều này xảy ra khá nhiều bây giờ mọi người đã quen với tab nhấp chuột giữa cho tab mới: nó trông giống như một liên kết, bạn muốn đọc nó trong một tab mới, nhưng hóa ra đó hoàn toàn không phải là một liên kết thực sự, và đưa ra các kết quả không mong muốn như trang trống hoặc lỗi JS khi nhấp vào giữa.

là một thay thế phổ biến mà có thể được cho là ít tệ hơn. Tuy nhiên, bạn phải nhớ return falsetừ onclicktrình xử lý sự kiện của mình để ngăn liên kết được theo dõi và cuộn lên đầu trang.

Trong một số trường hợp, có thể có một nơi thực sự hữu ích để trỏ liên kết đến. Ví dụ: nếu bạn có một điều khiển, bạn có thể nhấp vào để mở ra một ẩn trước đó

, nó có ý nghĩa để sử dụng để liên kết với nó. Hoặc nếu có một cách không phải là JavaScript để làm điều tương tự (ví dụ: ‘thispage.php? Show = foo’ để đặt foo hiển thị để bắt đầu), bạn có thể liên kết với điều đó.

Mặt khác, nếu một liên kết chỉ trỏ đến một số tập lệnh, nó không thực sự là một liên kết và không nên được đánh dấu như vậy. Cách tiếp cận thông thường sẽ là thêm onclickvào a ,

hoặc không có hrefvà tạo kiểu theo cách nào đó để làm cho rõ ràng bạn có thể nhấp vào nó. Đây là những gì StackOverflow [đã làm tại thời điểm viết; bây giờ nó sử dụng href="#"].

Nhược điểm của điều này là bạn mất điều khiển bàn phím, vì bạn không thể tab trên một nhịp / div / trần-a hoặc kích hoạt nó với không gian. Việc này có thực sự là một bất lợi hay không phụ thuộc vào loại hành động mà phần tử dự định thực hiện. Bạn có thể, với một số nỗ lực, cố gắng bắt chước khả năng tương tác của bàn phím bằng cách thêm một tabIndexyếu tố và lắng nghe phím nhấn Space. Nhưng nó sẽ không bao giờ tái tạo 100% hành vi trình duyệt thực, nhất là vì các trình duyệt khác nhau có thể phản ứng với bàn phím khác nhau (chưa kể các trình duyệt không trực quan).

Nếu bạn thực sự muốn một yếu tố không phải là một liên kết nhưng có thể được kích hoạt như bình thường bằng chuột hoặc bàn phím, thì điều bạn muốn là một (hoặc cũng tốt như vậy, đối với nội dung văn bản đơn giản). Bạn luôn có thể sử dụng CSS để sắp xếp lại nó để nó trông giống như một liên kết hơn là một nút, nếu bạn muốn. Nhưng vì nó hoạt động giống như một nút bấm, đó là cách bạn thực sự nên đánh dấu nó.

(*: dù sao cũng là tác giả trang web. Rõ ràng chúng rất hữu ích cho bookmarklets. javascript:URL giả là một sự kỳ quái về khái niệm: một công cụ định vị không trỏ đến một vị trí, mà thay vào đó gọi mã hoạt động bên trong vị trí hiện tại. các vấn đề cho cả trình duyệt và ứng dụng web và không bao giờ được phát minh bởi Netscape.)

Rate this post
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments