PRB: HREF="#" with Event Code Behaves Differently (190244)



The information in this article applies to:

  • Microsoft Internet Explorer (Programming) 4.0
  • Microsoft Internet Explorer (Programming) 4.01

This article was previously published under Q190244

SYMPTOMS

The following HTML statement, when clicked, will navigate to a new URL in Internet Explorer 3.0, but fails to do so in Internet Explorer 4.0:
<A HREF="#" onclick="window.location.href='http://www.microsoft.com';"> 
    problem repro </A>
				

CAUSE

Internet Explorer 4.0 waits until all events from the <A> tag are finished before processing the HREF attribute, so window.location.href will be overwritten by HREF="#".

RESOLUTION

Here are three ways to make this tag work as expected in Internet Explorer 4.0. See the "More Information" section for a complete code listing.
  • Add this statement to the code:
    window.event.returnValue = false;
    						
    This causes the onclick event to fire and not try to navigate to the HREF specified by the link.
  • Replace the HREF value with JavaScript:[code].
  • Eliminate HREF="#" and make it look like an anchor with Cascading Style Sheets (CSS) by adding this style attribute to the anchor:
    style="cursor:hand; text-decoration:underline; color:blue; font-family:times new roman"
    						

STATUS

This behavior is by design.

MORE INFORMATION

Steps to Reproduce Behavior

The following HTML code demonstrates the problem and the resolutions.
<HTML>
<HEAD>
<TITLE> title </TITLE>
</HEAD>
<BODY>

<A HREF="#" onclick="window.location.href='http://www.microsoft.com';">
 problem repro </A>
<br>
<A HREF="#" onclick="window.location.href='http://www.microsoft.com';
   window.event.returnValue=false;">
   solution 1: add window.event.returnValue=false statement</A>
<br>
<A HREF="JavaScript:window.location.href='http://www.microsoft.com';">
   solution 2: replace HREF value with JavaScript:[code] </A>
<br>
<A onclick="window.location.href='http://www.microsoft.com';"
   onmouseover="window.status='http://www.microsoft.com';"
   onmouseout="window.status='';"
   style="cursor:hand; text-decoration:underline; color:blue;
   font-family:times new roman">
   solution 3: remove HREF attribute and use CSS </A>
</BODY>
</HTML>
				

REFERENCES

For more information about developing Web-based solutions for Microsoft Internet Explorer, visit the following Microsoft Web sites:
For more information about Microsoft Scripting technologies, see the following Web site:

Modification Type:MajorLast Reviewed:5/11/2006
Keywords:kbBug kbhtml kbprb kbScript KB190244