Tôi có liên kết này trên trang HTML của mình:
<a href = ""
onclick = "setBodyHtml ('new content'); return false; "
> click here </a>
Hàm setBodyHtml () được định nghĩa là:
function setBodyHtml (s)
{ document.body.innerHTML = s;
}
Khi tôi nhấp vào liên kết, liên kết sẽ biến mất và văn bản hiển thị trong trình duyệt sẽ thay đổi thành "nội dung mới".
Nhưng nếu tôi xóa "sai" khỏi liên kết của mình, nhấp vào liên kết đó (dường như) không có gì. Tại sao vậy?
Đó là bởi vì nếu tôi không trả lại sai, hành vi mặc định của việc nhấp vào liên kết và hiển thị trang đích của nó sẽ không bị hủy. NHƯNG, ở đây, href của siêu liên kết là "" để nó liên kết trở lại trang hiện tại CÙNG. Vì vậy, trang này chỉ được làm mới một cách hiệu quả và dường như không có gì xảy ra.
Trong nền, hàm setBodyHtml () vẫn được thực thi. Nó gán đối số của nó cho body.innerHTML. Nhưng vì trang được làm mới / tải lại ngay lập tức nên nội dung đã sửa đổi không hiển thị trong hơn một vài phần nghìn giây, vì vậy tôi sẽ không nhìn thấy nó.
Ví dụ này cho thấy tại sao đôi khi HỮU ÍCH khi sử dụng "return false".
Tôi muốn gán SOME href cho liên kết, để nó hiển thị dưới dạng liên kết, dưới dạng văn bản được gạch chân. Nhưng tôi không muốn nhấp vào liên kết để tải lại trang một cách hiệu quả. Tôi muốn điều hướng mặc định = hành vi bị hủy và bất kỳ tác dụng phụ nào gây ra bằng cách gọi chức năng của tôi để thực hiện và duy trì hiệu lực. Vì vậy, tôi phải "trả lại sai".
Ví dụ trên là thứ bạn sẽ nhanh chóng thử trong quá trình phát triển. Để sản xuất, nhiều khả năng bạn sẽ chỉ định một trình xử lý nhấp chuột trong JavaScript và thay vào đó gọi hàm notifyDefault (). Nhưng để dùng thử nhanh, "return false" ở trên thực hiện thủ thuật.