[Javascript] link onclick=location.href not working

David Lovering dlovering at gazos.com
Tue Mar 30 10:57:35 CST 2004


On reflection, I think you're right.  I knee-jerked a "javascript:" when I
saw the href reassignment, without taking into consideration the fact that
we are (by default) invoking JavaScript with the "onclick" handler.  Now if
folks start hanging VB script and other funky things off of event handlers
as a matter of regular course (and revised W3C standards), this might
someday change...

Thanks for the quick eyes!

-- Dave Lovering

----- Original Message ----- 
From: "Peter Brunone" <peter at brunone.com>
To: <javascript at LaTech.edu>
Sent: Tuesday, March 30, 2004 9:02 AM
Subject: Re: [Javascript] link onclick=location.href not working


>
>    Just one small comment on David's treatise:
>
> >A real hard-core standards type would suggest prefacing the javascript
> >directive reassigning the window.location.href with "javascript:", but
I'm
> >not him.
>
>    Wouldn't that hard-core standards type be incorrect?  A protocol or
pseudoprotocol may be necessary (by standards) for the href property, but I
didn't think that applied to event handlers.
>
> Learning something new every day,
>
> Peter
>
> Original Message:
> >From: "David Lovering" <dlovering at gazos.com>
>
> >That's very odd -- the structure I mean, not the problem.  The way you've
> >chosen to do this strikes me as a bit bizarre -- the fact that IE6 does
it
> >this way is a testimony to the screwy things it does support.
> >
> >It looks as though you are indexing buttons, which when clicked change
the
> >window.location.href to something else.  I usually choose to use frames
> >(shouts and cries of protest from the non-frame crowd), putting all my
> >non-moving buttons in one frame which doesn't scroll.  No indexing
required.
> >If you MUST put an index around a button, I'd do it inside a DIV so that
the
> >event-handling logic is a bit more straight-forward.  [Not a requirement
of
> >W3C -- just my own programming eccentricity].
> >
> >Secondly, I'd attach the onclick event to the button itself -- not the
index
> >(which by the above reasoning becomes unnecessary).
> >A real hard-core standards type would suggest prefacing the javascript
> >directive reassigning the window.location.href with "javascript:", but
I'm
> >not him.
> >
> >The other way to modularize the whole thing (whichever method you
eventually
> >turn to) is to put the href changer into a function outside the
> >link/button(s), so that if you change the mechanism later you only have
to
> >do it one place.  Yes, I know that brain-dead defective Micro$oft-style
> >page-generation tools (Frontpage, etc.) sometimes replicate the intrinsic
> >active script in each object, but that's just silly and shouldn't be
taken
> >as an example of how to do things CORRECTLY.
> >
> >Ultimately, if you want to go to the "next level" of modularity, you can
> >largely automate the whole process by creating an entirely new object (an
> >"indexPageChange" perhaps?) which automatically counts the other
incidences
> >of "indexPageChange" objects (or whatever), bumps the counter by one,
uses
> >that to define the index number used in the link, and correctly
references
> >the href changer function with the proper link URL.  This is probably
> >somewhat over-the-top for your needs, but may be worth considering in the
> >future if you plan to do this sort of thing a lot.  With one include (the
> >function library and object definitions), you could then reference as
many
> >indexPageChange objects as you liked, just using them as wrappers for the
> >URL(s) they used. You could even (horrors!) add the URL's to an array, so
> >that the working code only references the link address by the index
itself,
> >without actually including the fully hairy-chested URL string in the
call.
> >That way you could validate the URL for forbidden characters, syntax,
etc.
> >outside the link invocation -- always a good idea in these
> >security-conscious times.
> >
> >At least, that is my opinion.
> >
> >-- Dave Lovering
> >
> >
> >----- Original Message ----- 
> >From: "Lau at goldenweb.com.au" <lau at goldenweb.com.au>
> >To: "[JavaScript List]" <javascript at LaTech.edu>
> >Sent: Tuesday, March 30, 2004 2:11 AM
> >Subject: [Javascript] link onclick=location.href not working
> >
> >
> >> I'm having trouble changing the window.location.href from the onclick
> >event
> >> of a link. using IE5.0
> >> It works if the link is wrapped around a button but if its wrapped
around
> >> text or an image.
> >>
> >> This works
> >> <A HREF='#aa' onclick='window.location.href =
> >> "http://www.google.com";'><INPUT TYPE=BUTTON VALUE="BUY"></A>
> >>
> >> but this doesn't
> >> <A HREF='#aa' onclick='window.location.href =
> >> "http://www.google.com";'>aaaa</A>
> >>
> >> In my actual code I have a function in the onclick that determines the
URL
> >> to assign.
> >>
> >> It works in IE6.0 but I need to get it working in all browsers.
> >>
> >> Could you please test this on your version browser and let me know if
it
> >> works or not?
> >>
> >> And what workaround can I use.
> >>
> >> Thanks in advance
> >> Lau
> >>
> >> _______________________________________________
> >> Javascript mailing list
> >> Javascript at LaTech.edu
> >> https://lists.LaTech.edu/mailman/listinfo/javascript
> >>
> >
> >
> >_______________________________________________
> >Javascript mailing list
> >Javascript at LaTech.edu
> >https://lists.LaTech.edu/mailman/listinfo/javascript
> >
> >
>
>
> _______________________________________________
> Javascript mailing list
> Javascript at LaTech.edu
> https://lists.LaTech.edu/mailman/listinfo/javascript
>





More information about the Javascript mailing list