HIP3 contains some JavaScript that sets the focus to the search box everytime a page is loaded – this means you can start typing text straight in to the box.
However, if you’ve already done a search, then it can be frustrating for the user to have the page suddenly jump to the top (especially if they are using the back button to return to a list of search results). In fact, it make more sense for the JavaScript to only set the focus on the initial search screens.
Here’s a quick hack that disables the JavaScript “setfocus” function for search result and full bib pages:
Open up searchresponse.xsl file and find the <body>
tag (it’s around line 230)
A few lines down you’ll find the onload attribute code – this tells the web browser to execute the startTimer
and setfocus
JavaScript functions as soon as the page has loaded:
<xsl:attribute name="onload">startTimer();setfocus();</xsl:attribute>
Replace that entire line of code with the following:
<!-- disable the setfocus for search result pages --> <xsl:if test="not(boolean(/searchresponse/yoursearch))"> <xsl:attribute name="onload">startTimer();setfocus();</xsl:attribute> </xsl:if> <xsl:if test="(boolean(/searchresponse/yoursearch))"> <xsl:attribute name="onload">startTimer();</xsl:attribute> </xsl:if> <!-- end of changes -->
Save the searchresponse.xsl file and check your HIP to see if the change works!
The usual notes apply:
- this worked fine for our UK HIP 3.04
- back up your original searchresponse.xsl file before you make any changes!
- if you’ve got one, try it on your test HIP server first
One thought on “improving the “setfocus” JavaScript”
Comments are closed.