By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,035 Members | 1,471 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,035 IT Pros & Developers. It's quick & easy.

IE 6, javascript:void(0) stops the webpage loading

P: n/a
Hi!
I m facing a problem with 'javascript:void(0)'

Software Environ:-
IE: 6.0.2600.0000
OS: Windows 2000 Professional with Service Pack 4

Problem:-
I have a webpage with several links (<A> tags), now i have added
onClick and blocked HREF using 'javascript:void(0)' as below:-

<a href="javascript:void(0)"
onClick="some_function('pagename')">Text</a>

Here 'some_function' is opening the 'pagename' in a new customised
window.

This page also contains a few images weighing 50kb. Now if I click the
<a> links before the images are loaded fully, following happens (on my
pc it works well but it happens when i test it online):-

1. The new page opens in a window as required
2. But the page loading is ABORTED and the images are not loaded.

More:-
This is not happening in FF 1.0.7

Need Help!

Dec 29 '05 #1
Share this Question
Share on Google+
13 Replies


P: n/a
Jitendra wrote:
Hi!
I m facing a problem with 'javascript:void(0)'

Software Environ:-
IE: 6.0.2600.0000
OS: Windows 2000 Professional with Service Pack 4

Problem:-
I have a webpage with several links (<A> tags), now i have added
onClick and blocked HREF using 'javascript:void(0)' as below:-

<a href="javascript:void(0)"
onClick="some_function('pagename')">Text</a>
This is a known feature of IE and why the use of the javascript
pseudo-protocol for the value of HREF attributes is actively discouraged.

<URL:
http://groups.google.com/group/comp....07ad60e4d8fe1f


Use something like:

<a href="serverFunction.html"
onClick="some_function('pagename');return false;">Text</a>
Where the href attribute allows the function to be performed on the
server and the return false stops it being followed where JavaScript
is enabled.
[...]
--
Rob
Dec 29 '05 #2

P: n/a

RobG napisal(a):
Jitendra wrote:
<a href="javascript:void(0)"
onClick="some_function('pagename')">Text</a>

Use something like:

<a href="serverFunction.html"
onClick="some_function('pagename');return false;">Text</a>

Where the href attribute allows the function to be performed on the
server and the return false stops it being followed where JavaScript
is enabled.


And if you don't have some server-based alternative, use something
like:
<a href="#" onClick="some_function('pagename');return false;">Text</a>
and if the user has javascript turned off, the link will still have no
effect except of appending "#" to the URL. Of course if you want some
CGI fallback for js fault, then keep the 'backup link', but if it's to
be a page that says "Sorry, you need Javascript", better if it does
nothing instead.

Dec 29 '05 #3

P: n/a
bw****@gmail.com wrote:
And if you don't have some server-based alternative, use something
like:
<a href="#" onClick="some_function('pagename');return false;">Text</a>
and if the user has javascript turned off, the link will still have no
effect except of appending "#" to the URL.
.... and making the user wonder why the link didn't work (probably after they
wait for a couple of minutes for the "new page" to load).

.... and shoving the user back up to the top of the page if they had scrolled
down to get to the link.
Of course if you want some
CGI fallback for js fault, then keep the 'backup link', but if it's to
be a page that says "Sorry, you need Javascript", better if it does
nothing instead.


I disagree. When the user expects something to happen, the system shouldn't
silently fail on them. A server side alternative is best, but an error
message beats nothing at all.

Another option is to generate the link with JavaScript in the first place -
after testing that all the needed features are available.

--
David Dorward <http://blog.dorward.me.uk/> <http://dorward.me.uk/>
Home is where the ~/.bashrc is
Dec 29 '05 #4

P: n/a
Thanks all for a very prompt reply!

: (

1. Actually i m not worried about javascript blocking as Javascript is
a prerequieist for my application. So the user is aware of this.
2. I cant use '#' as IE will treat it as a page location and scroll up
the page to the top.
3. i am not using any server side at this level as this only requires
to open another html page a new window....

: )
4. I can use 'href=somepage.html' (but i m doubtful of any flickering
as we are calling 2 pages - 1 on href and 2 onClick, pls correct me)

i ll let u know abt this....thnx again

i have to dliver the app day after....hope it will work

c ya

Dec 29 '05 #5

P: n/a
jitendramr wrote:
Thanks all for a very prompt reply!

: (

1. Actually i m not worried about javascript blocking as Javascript is
a prerequieist for my application. So the user is aware of this.
2. I cant use '#' as IE will treat it as a page location and scroll up
the page to the top.
Hence the suggestion to use - return false - in the onclick, it will
stop the browser following the link (i.e. in this case, going to the
top of the page).

3. i am not using any server side at this level as this only requires
to open another html page a new window....

: )
4. I can use 'href=somepage.html' (but i m doubtful of any flickering
as we are calling 2 pages - 1 on href and 2 onClick, pls correct me)


If you use return false the HREF will not be followed regardless of
what you put in there. Just don't use javascript:void().
[...]
--
Rob
Dec 29 '05 #6

P: n/a
I see...i ll give a try...

Thanks dear

Dec 29 '05 #7

P: n/a
RobG said the following on 12/29/2005 7:58 AM:
jitendramr wrote:
Thanks all for a very prompt reply!

: (

1. Actually i m not worried about javascript blocking as Javascript is
a prerequieist for my application. So the user is aware of this.
2. I cant use '#' as IE will treat it as a page location and scroll up
the page to the top.

Hence the suggestion to use - return false - in the onclick, it will
stop the browser following the link (i.e. in this case, going to the top
of the page).

3. i am not using any server side at this level as this only requires
to open another html page a new window....

: )
4. I can use 'href=somepage.html' (but i m doubtful of any flickering
as we are calling 2 pages - 1 on href and 2 onClick, pls correct me)

If you use return false the HREF will not be followed regardless of what
you put in there. Just don't use javascript:void().


<a href="somePage.html" onclick="return openWindow('this.href')">

function openWindow(newURL){
....
return false
}

Then, if anything in the function errors, the normal navigation takes
place. It is even a good practice when creating links with script. It
allows *something* to happen even when something breaks.

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Dec 29 '05 #8

P: n/a
thnx randy

Dec 30 '05 #9

P: n/a
David Dorward <do*****@yahoo.com> wrote:
I disagree. When the user expects something to happen, the system shouldn't
silently fail on them. A server side alternative is best, but an error
message beats nothing at all.


That's my personal opinion as well, but it seems that there is a trend
(if Safari and my copy of the IE 7 beta indeed constitute a "trend")
toward hiding script errors from users not actively searching for
them.

--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cyberspace.org | don't, I need to know. Flames welcome.
Dec 30 '05 #10

P: n/a
use <a href="javascript:;"
onClick="some_function('pagename')">Text</a> :)

Dec 30 '05 #11

P: n/a
nothingrows said the following on 12/30/2005 6:33 PM:
use <a href="javascript:;"
onClick="some_function('pagename')">Text</a> :)


And then test it in Firefox.... There is a thread not 3 or 4 days old
where that instituted a problem in Mozilla based browsers where the
javascript: URI caused the Javascript Console to open even when there
were no errors.

Now, please read this groups FAQ with regards to quoting, replying, and
the javascript: pseudo-protocol before suggesting it's improper use.

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Dec 31 '05 #12

P: n/a
bw****@gmail.com wrote :
RobG napisal(a):
Jitendra wrote:
<a href="javascript:void(0)"
onClick="some_function('pagename')">Text</a>
Use something like:

<a href="serverFunction.html"
onClick="some_function('pagename');return false;">Text</a>

Where the href attribute allows the function to be performed on the
server and the return false stops it being followed where JavaScript
is enabled.

And if you don't have some server-based alternative, use something
like:
<a href="#" onClick="some_function('pagename');return false;">Text</a>


Such pseudo-link is also considered bad practice.
and if the user has javascript turned off, the link will still have no
effect except of appending "#" to the URL.


No. It does bring the page all the way up.
What's important is to use a link when such link leads somewhere, when
there is a real url, otherwise you're misusing links.

Gérard
--
remove blah to email me
Dec 31 '05 #13

P: n/a
Christopher Benson-Manica wrote:
I disagree. When the user expects something to happen, the system
shouldn't silently fail on them. A server side alternative is best, but
an error message beats nothing at all.
That's my personal opinion as well, but it seems that there is a trend
(if Safari and my copy of the IE 7 beta indeed constitute a "trend")
toward hiding script errors from users not actively searching for
them.


The trouble with browsers alerting about script errors is that they can't
distinguish between errors that matter, and errors that don't. There are
quite a few pages where moving the mouse over elements fires off
onmouseover events that spew errors to the JavaScript console, and shoving
these in the user's face would be ... unpleasant.

There is a difference between a script author writing a sensible fail path
in his script, and a scripting engine author displaying all the debug
information to the average user.

--
David Dorward <http://blog.dorward.me.uk/> <http://dorward.me.uk/>
Home is where the ~/.bashrc is
Dec 31 '05 #14

This discussion thread is closed

Replies have been disabled for this discussion.