Connecting Tech Pros Worldwide Forums | Help | Site Map

onClick method question (this.href and document.location.href)

yogesh.bhardwaj@gmail.com
Guest
 
Posts: n/a
#1: Jul 23 '05
Hello all

I am trying to modify the link URL when a user clicks on the link.
Following is the code:

<a onClick="document.location.href=modifyURL(this.hre f);"
href="SOME_DYNAMIC_URL" %>Link</a>

The javascript function, modifyURL(href), works fine and returns the
desired URL, but for some reason, the value of 'href' is not getting
overwritten with the value returned from the js function. It works fine
if I use the following code:

<a onClick="this.href=modifyURL(this.href);" href="SOME_DYNAMIC_URL"
%>Link</a>

But the reason I'm trying to use document.location instead is because
of an IE bug. The string 'Link' actually contains the character '@', if
I use this.href, the URL will be formed perfectly, but right before the
page redirects to the new location, the whole URL will be printed on
the page (replacing the string 'Link'). This "bug" is overcome by using
document.location, but then the URL is not getting updated. Any ideas?
Thanks a lot
-Yogesh




Lee
Guest
 
Posts: n/a
#2: Jul 23 '05

re: onClick method question (this.href and document.location.href)


yogesh.bhardwaj@gmail.com said:[color=blue]
>
>Hello all
>
>I am trying to modify the link URL when a user clicks on the link.
>Following is the code:
>
><a onClick="document.location.href=modifyURL(this.hre f);"
>href="SOME_DYNAMIC_URL" %>Link</a>[/color]

You're telling the browser to do two things that conflict.
1) set document.location.href to some URL
2) follow the link to "SOME_DYNAMIC_URL"

You can cancel action #2 by having the onClick handler return false.

onclick="document.location.href=modifyURL(this.hre f);return false"

yogesh.bhardwaj@gmail.com
Guest
 
Posts: n/a
#3: Jul 23 '05

re: onClick method question (this.href and document.location.href)


Great! that works. Thanks Lee.

-Yogesh

Lee wrote:[color=blue]
> yogesh.bhardwaj@gmail.com said:[color=green]
> >
> >Hello all
> >
> >I am trying to modify the link URL when a user clicks on the link.
> >Following is the code:
> >
> ><a onClick="document.location.href=modifyURL(this.hre f);"
> >href="SOME_DYNAMIC_URL" %>Link</a>[/color]
>
> You're telling the browser to do two things that conflict.
> 1) set document.location.href to some URL
> 2) follow the link to "SOME_DYNAMIC_URL"
>
> You can cancel action #2 by having the onClick handler return false.
>
> onclick="document.location.href=modifyURL(this.hre f);return false"[/color]

Closed Thread