[Javascript] link onclick=location.href not working

Peter Brunone peter at brunone.com
Tue Mar 30 10:02:41 CST 2004


   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
>
>





More information about the Javascript mailing list