javascript — “Javascript: void (0)” nghĩa là gì?

Related Articles

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

Không có lý do chính đáng để sử dụng URL giả javascript: (*). Trong thực tế, nó sẽ gây ra sự nhầm lẫn hoặc sai sót nếu bất cứ ai cũng nên thử những thứ như ‘liên kết dấu trang, 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 có thể được cho là ít tệ hơn. Tuy nhiên, bạn phải nhớ return false từ trình xử lý sự kiện onclick của bạn để ngăn liên kết được theo dõi và cuộn lên trên cùng của 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ở

bị ẩn trước đó, sẽ rất hợp lý khi 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 thì đặt foo hiển thị để bắt đầu), bạn có thể liên kết đến đó.

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 onclick vào ,

hoặc mà không cần href và tạo kiểu cho nó 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 tabIndex vào thành phần và lắng nghe phím nhấn phím cách. 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ó.

(*: trong việc tạo trang web, dù sao đi nữa. 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. vấn đề bảo mật cho cả trình duyệt và ứng dụng web và không bao giờ được Netscape phát minh ra.)

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories