@@ -33,13 +33,7 @@ window.search = window.search || {};
33
33
mark_exclude = [ 'text' ] ,
34
34
marker = new Mark ( content ) ,
35
35
URL_SEARCH_PARAM = 'search' ,
36
- URL_MARK_PARAM = 'highlight' ,
37
-
38
- SEARCH_HOTKEY_KEYCODES = [ 83 , 191 ] , // `s` or `/`.
39
- ESCAPE_KEYCODE = 27 ,
40
- DOWN_KEYCODE = 40 ,
41
- UP_KEYCODE = 38 ,
42
- SELECT_KEYCODE = 13 ;
36
+ URL_MARK_PARAM = 'highlight' ;
43
37
44
38
let current_searchterm = '' ,
45
39
doc_urls = [ ] ,
@@ -352,7 +346,7 @@ window.search = window.search || {};
352
346
return ;
353
347
}
354
348
355
- if ( e . keyCode === ESCAPE_KEYCODE ) {
349
+ if ( e . key === 'Escape' ) {
356
350
e . preventDefault ( ) ;
357
351
searchbar . classList . remove ( 'active' ) ;
358
352
setSearchUrlParameters ( '' ,
@@ -362,46 +356,46 @@ window.search = window.search || {};
362
356
}
363
357
showSearch ( false ) ;
364
358
marker . unmark ( ) ;
365
- } else if ( ! hasFocus ( ) && SEARCH_HOTKEY_KEYCODES . includes ( e . keyCode ) ) {
359
+ } else if ( ! hasFocus ( ) && ( e . key === 'S' || e . key === '/' ) ) {
366
360
e . preventDefault ( ) ;
367
361
showSearch ( true ) ;
368
362
window . scrollTo ( 0 , 0 ) ;
369
363
searchbar . select ( ) ;
370
- } else if ( hasFocus ( ) && ( e . keyCode === DOWN_KEYCODE
371
- || e . keyCode === SELECT_KEYCODE ) ) {
364
+ } else if ( hasFocus ( ) && ( e . key === 'ArrowDown'
365
+ || e . key === 'Enter' ) ) {
372
366
e . preventDefault ( ) ;
373
367
const first = searchresults . firstElementChild ;
374
368
if ( first !== null ) {
375
369
unfocusSearchbar ( ) ;
376
370
first . classList . add ( 'focus' ) ;
377
- if ( e . keyCode === SELECT_KEYCODE ) {
371
+ if ( e . key === 'Enter' ) {
378
372
window . location . assign ( first . querySelector ( 'a' ) ) ;
379
373
}
380
374
}
381
- } else if ( ! hasFocus ( ) && ( e . keyCode === DOWN_KEYCODE
382
- || e . keyCode === UP_KEYCODE
383
- || e . keyCode === SELECT_KEYCODE ) ) {
375
+ } else if ( ! hasFocus ( ) && ( e . key === 'ArrowDown'
376
+ || e . key === 'ArrowUp'
377
+ || e . key === 'Enter' ) ) {
384
378
// not `:focus` because browser does annoying scrolling
385
379
const focused = searchresults . querySelector ( 'li.focus' ) ;
386
380
if ( ! focused ) {
387
381
return ;
388
382
}
389
383
e . preventDefault ( ) ;
390
- if ( e . keyCode === DOWN_KEYCODE ) {
384
+ if ( e . key === 'ArrowDown' ) {
391
385
const next = focused . nextElementSibling ;
392
386
if ( next ) {
393
387
focused . classList . remove ( 'focus' ) ;
394
388
next . classList . add ( 'focus' ) ;
395
389
}
396
- } else if ( e . keyCode === UP_KEYCODE ) {
390
+ } else if ( e . key === 'ArrowUp' ) {
397
391
focused . classList . remove ( 'focus' ) ;
398
392
const prev = focused . previousElementSibling ;
399
393
if ( prev ) {
400
394
prev . classList . add ( 'focus' ) ;
401
395
} else {
402
396
searchbar . select ( ) ;
403
397
}
404
- } else { // SELECT_KEYCODE
398
+ } else { // Enter
405
399
window . location . assign ( focused . querySelector ( 'a' ) ) ;
406
400
}
407
401
}
0 commit comments