Why does my JSP appear scrolled down to the bottom.

I imagine this will be an easy question probably. I have a JSP application up and running using Apache Struts. I have the annoying problem which users are complaining about that when a page is being generated which requires scrolling, it appears scrolled down to the bottom. I would wish for any page to appear with the page appearing with the scrolling at the top and that the user scrolls down from there. I bet this is easy to fix. I thought I might trawl through some articles and search engines and see if I could find others who have this problem and look at fixing it. I could spend lots of time looking through the internet and such for an answer but......I am tired...
carljoklAsked:
Who is Participating?
 
TimYatesCommented:
It's beacuse you set the focus in a field that's half way down the page:

     focusControl.focus();

(probably)

I will try and test it ;-)

Tim
0
 
TimYatesCommented:
I'm guessing you must have an anchor in the URL ie:

    http://www.myserver.com/mypage.do#something

if it's not that, I've never heard of it...

Can you post an example, or give a link to your site?

Tim
0
 
carljoklAuthor Commented:
This is the generated source code of the page in question. I have noticed it did not open at the bottom but openend half way down the paged,

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
      <head>
            <title>RentalResult</title>
            <link rel="stylesheet" media="screen" type="text/css" title="RentalResult Design" href="jsp/styles/style.css"/>
      </head>
      <body>
<div id="principal">
                  <div id="bloctitle">
                        <img src="/river/jsp/images/logosmall.jpg" id="title" alt="Rental Result">
                        <h1 id="description">Documents</h1>
                  </div>
                  <div id="blochead">

      
                        <div class="name">result from result</div>
      



</div>
<div id="bloccenter">


      
      
            <div id="menubloc">
                  <ul id="menu">
                        <li><a href="/river/Index.do">Index</a></li>
                        <li><a href="/river/RequestList.do">Requests</a></li>
                        <li><a href="/river/DocumentList.do?parentId=1">Documents</a></li>
                         <li><a href="/river/UsersList.do">Users</a></li>
                        <li><a href="/river/CompaniesList.do">Clients</a></li>
                        <li><a href="/river/ProspectingList.do">Prospecting</a></li>
                        <li><a href="/river/Account.do">Account</a></li>
                        <li><a href="/river/Logout.do">Logout</a></li>
                  </ul>
            </div>
      
      









<script language="JavaScript">
    function ValidationRemove(text)
    {
        var where_to = confirm(text);
        if (where_to == true)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
</script>

<h1>Documents list</h1>
<div class="center">
<div class="separator"></div>
<form name="search" method="post" action="/river/SearchDone.do">
<table class="center">
      <tr>
            <td><h1>Search:</h1></td>
            <td><input type="text" name="searchText" size="20" value=""></td>
        <td>Exact Match:</td>
            <td><input type="checkbox" name="exactMatch" value="true"></td>
            <td><input type="submit" value="Search"></td>
      </tr>
</table>
</form>
<script type="text/javascript" language="JavaScript">
  <!--
  var focusControl = document.forms["search"].elements["searchText"];

  if (focusControl.type != "hidden" && !focusControl.disabled) {
     focusControl.focus();
  }
  // -->
</script>

</div>



<div class="separator"></div>

   
        \<a href="/river/DocumentList.do?parentId=1" class="center">principal</a>
   

<br>

<div class="separator"></div>
<table>
   
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=329" class="center">Company</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Documents for the company</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=329" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=329" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=329" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=97" class="center">Development</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Contains Development Schedule and Useful Documents for spec writers &amp; developers
</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=97" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=97" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=97" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=200" class="center">HelpDesk &amp; Support</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Contains HelpDesk Information &amp; Support Documents, including Customer SLA&#39;s, System Access Lists, Passwords, etc</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=200" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=200" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=200" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=92" class="center">Manuals</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Contains Java, Character, Internal and BI Manuals</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=92" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=92" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=92" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=259" class="center">Personnel Files</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: All day-to-day files relating to Personnel, including Holiday Forms, etc</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=259" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=259" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=259" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=215" class="center">Project Management</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Contains Account Management Tools, including Account Owners, Project Updates and Planning Tools</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=215" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=215" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=215" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=217" class="center">Prototyping</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: general...</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=217" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=217" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=217" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=98" class="center">QA</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Contains Quality Manual Staffing profiles customer builds</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=98" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=98" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=98" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=94" class="center">Systems and Logins</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Contains log in, script, environment, release versions etc for customer sites</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=94" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=94" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=94" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=93" class="center">Templates</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Contains standard templates for specs, release forms, holiday forms etc</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=93" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=93" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=93" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=95" class="center">Training</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Contains Agendas etc</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=95" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=95" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=95" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=238" class="center">USA Application Files</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: USA Application File</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=238" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=238" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=238" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=227" class="center">User Group Files</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Documents for the User Group to Utilise</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=227" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=227" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=227" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
            <tr>
                <td>
                   
                        <img src="/river/jsp/images/dir.gif" alt="document">
                   
                   
                   
                        <a href="/river/DocumentList.do?parentId=228" class="center">User Group USA Files</a>
                   
                   
                   
                </td>
            </tr>
            <tr>
                <td><p>Description: Documents for the USA User Group to Utilize</p></td>
            </tr>
            <tr>
                <td>
                   
                       
                            <a href="/river/RemoveNode.do?parentId=1&amp;id=228" class="center" onclick="return ValidationRemove('Do you want to remove this folder?');">remove
                                folder</a>
                            <a href="/river/RenameNode.do?&amp;nodeId=228" class="center">rename folder</a>
                            <a href="/river/ManageDocs.do?&amp;nodeId=228" class="center">share folder</a>
                       
                       
                   
                   
                </td>
            </tr>
            <tr>
                <td>
                    <div class="separatorSmall"></div>
                </td>
            </tr>
       
   
</table>

   
        <div class="center">
            <div class="separatorBig"></div>
            <h1>Add folder</h1>
            <form name="addfolder" method="post" action="/river/AddFolderDone.do">
                <table class="center">
                    <tr>
                        <td>Set folder name:<br>(name where documents will be saved)</td>
                        <td><input type="text" name="name" size="20" value=""></td>
                    </tr>
                    <tr>
                        <td>Set display name:<br>(name which will appear into documents list)</td>
                        <td><input type="text" name="displayName" size="20" value=""></td>
                    </tr>
                    <tr>
                        <td>Set description:</td>
                        <td><textarea name="description" cols="30" rows="8"></textarea></td>
                    </tr>
                </table>
                (* all fields are mandatory)
                <div class="separator"></div>
                <table class="center">
                    <tr>
                        <td><input type="submit" value="Submit"></td>
                        <td><input type="reset" value="Reset"></td>
                    </tr>
                </table>
                <input type="hidden" name="parentId" value="1">
            </form>
<script type="text/javascript" language="JavaScript">
  <!--
  var focusControl = document.forms["addfolder"].elements["name"];

  if (focusControl.type != "hidden" && !focusControl.disabled) {
     focusControl.focus();
  }
  // -->
</script>

            <div class="separatorBig"></div>
            <h1>Add file</h1>
            <form name="addfile" method="post" action="/river/AddFileDone.do" enctype="multipart/form-data">
                <table class="center">
                    <tr>
                        <td>Select file:</td>
                        <td><input type="file" name="theFile" value=""></td>
                    </tr>
                    <tr>
                        <td>Set description:</td>
                        <td><textarea name="description" cols="30" rows="8"></textarea></td>
                    </tr>
                </table>
                (* all fields are mandatory)
                <input type="hidden" name="parentId" value="1">
                <div class="separator"></div>
                <table class="center">
                    <tr>
                        <td><input type="submit" value="Submit"></td>
                        <td><input type="reset" value="Reset"></td>
                    </tr>
                </table>
            </form>
        </div>
   


            </div>
                  <div id="blocfoot"></div>
            </div>
      </body>
</html>

0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

 
carljoklAuthor Commented:
That looks like a likely culprit. Well at least it is not my code. I wonder what the creater was hoping to achieve with it.
0
 
TimYatesCommented:
[after testing]  Yup...  That's why...

Either

1)  Accept the fact it's going to scroll down to the focused input box
2)  Don't set the focus on that input box, as it will scroll the page
3) Change:

  if (focusControl.type != "hidden" && !focusControl.disabled) {
     focusControl.focus();
  }

to

  if (focusControl.type != "hidden" && !focusControl.disabled) {
     focusControl.focus();
     window.setTimeout( "window.scrollTo( 0, 0 )", 5 ) ;
  }

To snap the scroll back up to the top of the page after 5 milliseconds (obviously, this is a bit of a hack) ;-)

Tim
0
 
TimYatesCommented:
>> I wonder what the creater was hoping to achieve with it.

It's usually good manners when designing a page, that if someone HAS to enter something to progress (or will enter something 99% of the time), that you put the cursor in that entry box ready for them...it saves them a mouse click (ie:  google does it on their search page)

This page looks a bit too busy to use it though...as there are LOADS of things a user can do, and trying to force them down one path is obviously annoying those who use a different path :-)

Tim
0
 
carljoklAuthor Commented:
I think what is interesting is that bit of Java script is not anywhere in my JSP document. It is being autogenerated form somewhere. I wonder if it is part of the Struts framework. I am going to look for clues in the Stuts config file
0
 
carljoklAuthor Commented:
This page is part of a document management system. The page is busy because there are elements itterated over for each document in a given folder. At the bottom there are forms for adding a folder or a file. It looks like the name field from one of these is grabbing the focus. I guess during the testing phase this would have been less obvious.
0
 
carljoklAuthor Commented:
Aha! I have found tha property on the form on the JSP which gives focus to the name field. I will remove it.
0
 
TimYatesCommented:
yay! :-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.