Thursday, November 24, 2011
Why use href="#"?
Yes, I finally figured why people so often use construct
<A href="#" onclick=do something...
whereas I have always been using
<A href="javascript:foo()" ...
Let's look at this test file:
<A href="#" onclick=do something...
whereas I have always been using
<A href="javascript:foo()" ...
Let's look at this test file:
<html>
<script>
function foo(elm) {
if (elm == window)
alert('received Window!');
else
alert("received <" + elm.tagName + ">");
}
</script>
<A href="javascript:foo(this)">Click 1</A><br />
<A href="#" onclick="foo(this); return false">Click 2</A>
</html>
Second click works as "expected," passing relevant "<A>" node into Javascript function, but first one does not; instead; 'this' is resolved to it's "default" value as current document "window". Also, this behavior seems to be consistent across all major browsers.