Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why don't you add href='#' and return false from the click event. Nothing gets added to the history that way.

Better yet, add a href='/uri/to/script' as a fallback in case the user has JS disabled.



I was under the impression this (href=uri, js fallback) was the accepted standard, is it not?


It is, the comments on the blog say as much as well. Use href="#" if a link makes no sense (anything UI-related and ephemeral, basically).


Even many UI-related items could have sensible URL, e.g. href="#show-widget" (and read location.hash and perform that action when page is loaded).

The href is not only for JS-less browsers, it's also for links opened in new tab or saved in browsing session.


You really should not return false from event handlers. Returning false is equivalent to calling both preventDefault() (that's what you want) AND stopPropagation()

By stopping propagation, you break delegation and make it impossible at worst and very random at best to add another handler to the same event.

Just use preventDefault o stop the browser from following the link.


  Returning false is equivalent to calling both preventDefault()
  (that's what you want) AND stopPropagation()
This is so in jQuery. In basic Javascript "return false" does not stop the propagation. See http://stackoverflow.com/questions/1357118/javascript-event-...




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: