From: FAQ server on
FAQ Topic - I have <a href="javascript:somefunction()"> what
.... ?

Whatever the rest of your question, this is generally a very bad idea.
The ` javascript: ` pseudo protocol was designed to replace the
current document with the value that is returned from the expression.
For example:

<a href="javascript:'&lt;h1&gt;' + document.lastModified + '&lt;/h1&gt;'">lastModified</a>

will result in replacing the current document with the value
returned from ` document.lastModified `, wrapped in an ` <h1> `

When the expression used evaluates to an ` undefined ` value
(as some function calls do), the contents of the current page are not
replaced. Regardless, some browsers (notably IE6) interpret this as
navigation and will enter into a 'navigation' state where GIF
animations and image swaps will stop working.

It is also possible for IE to be configured such that it supports
javascript but not the ` javascript: ` protocol. This results
in the user seeing a protocol error for ` javascript: ` URIs.

The ` javascript: ` pseudo protocol creates accessibility and
usability problems. It provides no fallback for when the script is not

Instead, use
` <a href="something.html" onclick="somefunction();return false"> `
where ` something.html ` is a meaningful alternative. Alternatively,
attach the ` click ` callback using an event registry.

The complete comp.lang.javascript FAQ is at


The sendings of these daily posts are proficiently hosted