Use onLoad function to 'jump' to an internal section (bookmark) on the page.

emartin24
emartin24 used Ask the Experts™
on
Hello,

If I had a HTML page like the following:

<html>
<head>
</head>
<body>
<table height="100">
  <tr>
    <td>blah blah</td>
  </tr>
</table>
<table>
  <tr>
    <td><a name="image"></a><img src="/images/image.jpg" border="0"></td>
  </tr>
</table>
</body>
</html>

How would I use JavaScript to cause the page to 'jump' down to the image when the page loads? Hopefully my question makes sence ;)

Thanks,
Eric
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Commented:
not sure if this will work for all browsers.

<body onload="document.anchors['image'].focus();">
Commented:
try this,

<html>
<head>
</head>
<body onload="window.location='#image';">
<table height="100">
  <tr>
    <td>blah blah</td>
  </tr>
</table>
<br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br>
<table>
  <tr>
    <td><a  name="image"></a><img src="/images/image.jpg" border="0"></td>
  </tr>
</table>
</body>
</html>

Commented:
  Why not just use anchors  ie the page is called with mypage.htm#image. Or on the onload event put document.location=mypage.htm#image which will scroll down when the page is opened as just mypage.htm
Should you be charging more for IT Services?

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

Commented:
i must agree with the last comment:

use onload="document.location.replace('mypage.htm#image')";
this is the best solution.


Nushi.
with scroollTo too:
===============================
<body onload=scrollTo(0,1500)>
except that onload="document.location.replace('mypage.htm#image') will create an infinite loop of loading and reloading the page.  Use this instead:

<script type='text/javascript'>
<!--
if(document.location.search=="")  {
  document.location.replace(document.location + "#myimage")
}
//-->
</script>


{Slam}
Whoops, cancel that comment.  If you use an you won't create the loop...
*If you use an anchor you won't create the loop

Author

Commented:
I will try some of the solutions mentioned. Maybe I should have mentioned this before ;), but the reason I don't load the page with mypage.htm#image is because the output is coming from a CGI script.

So the URL is:
http://www.mysite.com/cgi-bin/myprogram.cgi?image=myimage.jpg

I do not think that it works to use:
http://www.mysite.com/cgi-bin/myprogram.cgi?image=myimage.jpg#image

Which is why I was thinking I could use javascript to have the page go directly to the image when it loads. And the reason for this is to prevent having to scroll down to see the image.

Thanks.

Author

Commented:
third's suggestion did the trick, so I have accepted his answer. Thank you all for your contributions.

Thanks,
Eric

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial