У меня есть эта ссылка на моей HTML-странице:
<a href = ""
onclick = "setBodyHtml ('new content'); return false; "
> click here </a>
Функция setBodyHtml () определяется как:
function setBodyHtml (s)
{ document.body.innerHTML = s;
}
Когда я нажимаю на ссылку, ссылка исчезает, а текст, отображаемый в браузере, меняется на «новый контент».
Но если я удаляю «ложь» из моей ссылки, щелчок по ссылке ничего не делает. Это почему?
Это происходит потому, что если я не верну false, поведение по умолчанию при нажатии на ссылку и отображении ее целевой страницы не отменяется. НО, здесь href гиперссылки "", поэтому он ссылается на ту же самую текущую страницу. Таким образом, страница просто обновляется, и, похоже, ничего не происходит.
В фоновом режиме функция setBodyHtml () все еще выполняется. Он присваивает свой аргумент body.innerHTML. Но поскольку страница немедленно обновляется / перезагружается, измененный основной текст не остается видимым более нескольких миллисекунд, поэтому я его не увижу.
Этот пример показывает, почему иногда полезно использовать «return false».
Я хочу назначить НЕКОТОРЫЙ href ссылке, чтобы она отображалась в виде ссылки в виде подчеркнутого текста. Но я не хочу, чтобы клик по ссылке просто перезагружал страницу. Я хочу, чтобы навигация по умолчанию = поведение было отменено, и любые побочные эффекты вызваны вызовом моей функции для принятия и сохранения в силе. Поэтому я должен «вернуть ложь».
Пример выше - это то, что вы бы быстро опробовали во время разработки. Для производства вы, скорее всего, назначите обработчик кликов в JavaScript и вместо этого вызовете protectDefault (). Но для быстрого опробования «возвращаемое ложное» выше делает свое дело.