login

Tôi đã thấy hrefs như vậy nhiều lần, nhưng tôi không biết chính xác điều đó có nghĩa là gì.

Bạn đang xem: Javascript:void(0) là gì

Toán tử void đánh giá biểu thức đã cho và sau đó trả về undefined.

Toán tử void thường chỉ được sử dụng để lấy giá trị nguyên thủy undefined, thường sử dụng Hồi void(0), (tương đương với Hồi void 0)). Trong những trường hợp này, biến toàn cục undefined có thể được sử dụng thay thế (giả sử nó chưa được gán cho giá trị không mặc định).

Một lời giải thích được cung cấp ở đây: void toán tử .

Lý do mà bạn muốn thực hiện điều này với href của một liên kết là thông thường, URL javascript: sẽ chuyển hướng trình duyệt sang phiên bản văn bản đơn giản về kết quả đánh giá JavaScript đó. Nhưng nếu kết quả là undefined, thì trình duyệt vẫn ở trên cùng một trang. void(0) chỉ là một tập lệnh ngắn và đơn giản để đánh giá undefined.

913
18 thg 8, 2009 rahul

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 .

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

(*: 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.)

Nó có nghĩa là nó sẽ không làm gì cả. Nó có một nỗ lực để có liên kết không ‘điều hướng ở bất cứ đâu. Nhưng nó không đúng cách.

Bạn thực sự chỉ nên return false trong sự kiện onclick, như vậy:

hello

Thông thường, nó được sử dụng nếu liên kết đang thực hiện một số điều ‘JavaScript-y. Giống như đăng một biểu mẫu AJAX hoặc hoán đổi hình ảnh hoặc bất cứ điều gì. Trong trường hợp đó, bạn chỉ cần thực hiện bất kỳ chức năng nào đang được gọi là return false.

Xem thêm: Đơn Phương Chấm Dứt Hợp Đồng Là Gì, Trường Hợp Đơn Phương Chấm Dứt Hợp Đồng Lao Động

Tuy nhiên, để làm cho trang web của bạn hoàn toàn tuyệt vời, nói chung, bạn sẽ bao gồm một liên kết thực hiện cùng một hành động, nếu người duyệt nó chọn không chạy JavaScript.

hello

Đây là một phương pháp rất phổ biến để thêm các hàm JavaScript vào các liên kết HTML.
Ví dụ: các liên kết mà bạn thấy trên nhiều trang web được viết như thế này:

Print

Tại sao chúng ta cần href trong khi onclick một mình có thể hoàn thành công việc? Bởi vì khi người dùng di chuột qua văn bản “In” khi không có href, con trỏ sẽ thay đổi thành dấu mũ (ꕯ) thay vì con trỏ (????). Chỉ có href trên thẻ a xác thực nó là một siêu liên kết.

Một thay thế cho href=”javascript:void(0);”, là việc sử dụng href=”#”. Sự thay thế này không yêu cầu bật JavaScript trong trình duyệt của người dùng, vì vậy nó tương thích hơn.

Bạn phải luôn có một href trên thẻ a của bạn. Gọi một hàm JavaScript trả về “không xác định” sẽ hoạt động tốt. Vì vậy, sẽ liên kết đến “#”.

Các thẻ neo trong Internet Explorer 6 không có href không được áp dụng kiểu a:hover.

Vâng, nó là khủng khiếp và là một tội ác nhỏ chống lại loài người, nhưng nói chung là Internet Explorer 6 nói chung.

Tôi hi vọng cái này giúp được.

Internet Explorer 6 thực sự là một tội ác lớn chống lại loài người.

void là một toán tử được sử dụng để trả về giá trị undefined để trình duyệt không thể tải trang mới.

Các trình duyệt web sẽ thử và lấy bất cứ thứ gì được sử dụng làm URL và tải nó trừ khi đó là hàm JavaScript trả về null. Ví dụ: nếu chúng tôi nhấp vào một liên kết như thế này:

Click Me

sau đó một thông báo cảnh báo sẽ hiển thị mà không tải một trang mới và đó là vì alert là một hàm trả về giá trị null. Điều này có nghĩa là khi trình duyệt cố tải một trang mới, nó thấy null và không có gì để tải.

Một điều quan trọng cần lưu ý về toán tử void là nó yêu cầu một giá trị và không thể sử dụng chính nó. Chúng ta nên sử dụng nó như thế này:

I am a useless link

Để hiểu khái niệm này, trước tiên bạn nên hiểu toán tử void trong JavaScript.

Cú pháp của toán tử void là: void «expr» để đánh giá expr và trả về không xác định.

Xem thêm: Opt Out Là Gì – Cách Phân Biệt Opt For Sth, Opt Out

Nếu bạn thực hiện void như một hàm, nó sẽ trông như sau:

function myVoid(expr)

Toán tử void này có một cách sử dụng quan trọng đó là – loại bỏ kết quả của một biểu thức.

Trong một số tình huống, điều quan trọng là trả về không xác định trái ngược với kết quả của một biểu thức. Sau đó void có thể được sử dụng để loại bỏ kết quả đó. Một tình huống như vậy liên quan đến javascript: URL, nên tránh các liên kết, nhưng rất hữu ích cho bookmarklets. Khi bạn truy cập một trong những URL đó, nhiều trình duyệt sẽ thay thế tài liệu hiện tại bằng kết quả đánh giá các URL nội dung của Google, nhưng chỉ khi kết quả không được xác định. Do đó, nếu bạn muốn mở một cửa sổ mới mà không thay đổi nội dung hiện đang hiển thị, bạn có thể làm như sau:

javascript:void window.open(“http://example.com/”)

Chuyên mục: Hỏi Đáp