@@ -39,6 +39,14 @@ if (!DOMTokenList.prototype.remove) {
3939 } ;
4040}
4141
42+ function getSearchInput ( ) {
43+ return document . getElementsByClassName ( "search-input" ) [ 0 ] ;
44+ }
45+
46+ function getSearchElement ( ) {
47+ return document . getElementById ( "search" ) ;
48+ }
49+
4250( function ( ) {
4351 "use strict" ;
4452
@@ -71,7 +79,7 @@ if (!DOMTokenList.prototype.remove) {
7179 "derive" ,
7280 "traitalias" ] ;
7381
74- var search_input = document . getElementsByClassName ( "search-input" ) [ 0 ] ;
82+ var search_input = getSearchInput ( ) ;
7583
7684 // On the search screen, so you remain on the last tab you opened.
7785 //
@@ -158,7 +166,7 @@ if (!DOMTokenList.prototype.remove) {
158166 // If we're in mobile mode, we should add the sidebar in any case.
159167 hideSidebar ( ) ;
160168 var elem ;
161- var search = document . getElementById ( "search" ) ;
169+ var search = getSearchElement ( ) ;
162170 var i , from , to , match = window . location . hash . match ( / ^ # ? ( \d + ) (?: - ( \d + ) ) ? $ / ) ;
163171 if ( match ) {
164172 from = parseInt ( match [ 1 ] , 10 ) ;
@@ -250,7 +258,12 @@ if (!DOMTokenList.prototype.remove) {
250258 return String . fromCharCode ( c ) ;
251259 }
252260
261+ function getHelpElement ( ) {
262+ return document . getElementById ( "help" ) ;
263+ }
264+
253265 function displayHelp ( display , ev , help ) {
266+ var help = help ? help : getHelpElement ( ) ;
254267 if ( display === true ) {
255268 if ( hasClass ( help , "hidden" ) ) {
256269 ev . preventDefault ( ) ;
@@ -264,9 +277,10 @@ if (!DOMTokenList.prototype.remove) {
264277 }
265278 }
266279
267- function handleEscape ( ev , help ) {
280+ function handleEscape ( ev ) {
281+ var help = getHelpElement ( ) ;
282+ var search = getSearchElement ( ) ;
268283 hideModal ( ) ;
269- var search = document . getElementById ( "search" ) ;
270284 if ( hasClass ( help , "hidden" ) === false ) {
271285 displayHelp ( false , ev , help ) ;
272286 } else if ( hasClass ( search , "hidden" ) === false ) {
@@ -284,22 +298,21 @@ if (!DOMTokenList.prototype.remove) {
284298 return ;
285299 }
286300
287- var help = document . getElementById ( "help" ) ;
288301 if ( document . activeElement . tagName === "INPUT" ) {
289302 switch ( getVirtualKey ( ev ) ) {
290303 case "Escape" :
291- handleEscape ( ev , help ) ;
304+ handleEscape ( ev ) ;
292305 break ;
293306 }
294307 } else {
295308 switch ( getVirtualKey ( ev ) ) {
296309 case "Escape" :
297- handleEscape ( ev , help ) ;
310+ handleEscape ( ev ) ;
298311 break ;
299312
300313 case "s" :
301314 case "S" :
302- displayHelp ( false , ev , help ) ;
315+ displayHelp ( false , ev ) ;
303316 hideModal ( ) ;
304317 ev . preventDefault ( ) ;
305318 focusSearchBar ( ) ;
@@ -314,7 +327,7 @@ if (!DOMTokenList.prototype.remove) {
314327 case "?" :
315328 if ( ev . shiftKey ) {
316329 hideModal ( ) ;
317- displayHelp ( true , ev , help ) ;
330+ displayHelp ( true , ev ) ;
318331 }
319332 break ;
320333 }
@@ -1285,9 +1298,7 @@ if (!DOMTokenList.prototype.remove) {
12851298 } else if ( e . which === 16 ) { // shift
12861299 // Does nothing, it's just to avoid losing "focus" on the highlighted element.
12871300 } else if ( e . which === 27 ) { // escape
1288- removeClass ( actives [ currentTab ] [ 0 ] , "highlighted" ) ;
1289- search_input . value = "" ;
1290- defocusSearchBar ( ) ;
1301+ handleEscape ( e ) ;
12911302 } else if ( actives [ currentTab ] . length > 0 ) {
12921303 removeClass ( actives [ currentTab ] [ 0 ] , "highlighted" ) ;
12931304 }
@@ -1438,7 +1449,7 @@ if (!DOMTokenList.prototype.remove) {
14381449 ret_others [ 0 ] + ret_in_args [ 0 ] + ret_returned [ 0 ] + "</div>" ;
14391450
14401451 addClass ( main , "hidden" ) ;
1441- var search = document . getElementById ( "search" ) ;
1452+ var search = getSearchElement ( ) ;
14421453 removeClass ( search , "hidden" ) ;
14431454 search . innerHTML = output ;
14441455 var tds = search . getElementsByTagName ( "td" ) ;
@@ -1648,7 +1659,7 @@ if (!DOMTokenList.prototype.remove) {
16481659 if ( hasClass ( main , "content" ) ) {
16491660 removeClass ( main , "hidden" ) ;
16501661 }
1651- var search_c = document . getElementById ( "search" ) ;
1662+ var search_c = getSearchElement ( ) ;
16521663 if ( hasClass ( search_c , "content" ) ) {
16531664 addClass ( search_c , "hidden" ) ;
16541665 }
@@ -1695,7 +1706,7 @@ if (!DOMTokenList.prototype.remove) {
16951706 if ( hasClass ( main , "content" ) ) {
16961707 removeClass ( main , "hidden" ) ;
16971708 }
1698- var search_c = document . getElementById ( "search" ) ;
1709+ var search_c = getSearchElement ( ) ;
16991710 if ( hasClass ( search_c , "content" ) ) {
17001711 addClass ( search_c , "hidden" ) ;
17011712 }
@@ -2464,7 +2475,7 @@ if (!DOMTokenList.prototype.remove) {
24642475 var params = getQueryStringParams ( ) ;
24652476 if ( params && params . search ) {
24662477 addClass ( main , "hidden" ) ;
2467- var search = document . getElementById ( "search" ) ;
2478+ var search = getSearchElement ( ) ;
24682479 removeClass ( search , "hidden" ) ;
24692480 search . innerHTML = "<h3 style=\"text-align: center;\">Loading search results...</h3>" ;
24702481 }
@@ -2549,10 +2560,10 @@ if (!DOMTokenList.prototype.remove) {
25492560
25502561// Sets the focus on the search bar at the top of the page
25512562function focusSearchBar ( ) {
2552- document . getElementsByClassName ( "search-input" ) [ 0 ] . focus ( ) ;
2563+ getSearchInput ( ) . focus ( ) ;
25532564}
25542565
25552566// Removes the focus from the search bar
25562567function defocusSearchBar ( ) {
2557- document . getElementsByClassName ( "search-input" ) [ 0 ] . blur ( ) ;
2568+ getSearchInput ( ) . blur ( ) ;
25582569}
0 commit comments