diff options
author | Matt Brubeck <mbrubeck@gmail.com> | 2018-04-21 08:27:51 -0700 |
---|---|---|
committer | Michael Bryan <michaelfbryan@gmail.com> | 2018-04-21 23:27:51 +0800 |
commit | 1c71eaa96471a0d0ef5cdb051315b068d07419bc (patch) | |
tree | 611df931e2f6830b9ee83f75be4b8cbac8a90a25 | |
parent | c195aa990dab9fd3f6524ae4c956c775076555c2 (diff) |
Put the search bar into an HTML form (#669)v0.1.6
This enables "Add a keyword for this search" in the contex menu for the
search field, in Firefox and other browsers.
-rw-r--r-- | src/theme/index.hbs | 6 | ||||
-rw-r--r-- | src/theme/searcher/searcher.js | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/theme/index.hbs b/src/theme/index.hbs index 15a40dd7..5a9180de 100644 --- a/src/theme/index.hbs +++ b/src/theme/index.hbs @@ -116,9 +116,9 @@ {{#if search_enabled}} <div id="search-wrapper" class="hidden"> - <div id="searchbar-outer" class="searchbar-outer"> - <input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header"> - </div> + <form id="searchbar-outer" class="searchbar-outer"> + <input type="search" name="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header"> + </form> <div id="searchresults-outer" class="searchresults-outer hidden"> <div id="searchresults-header" class="searchresults-header"></div> <ul id="searchresults"> diff --git a/src/theme/searcher/searcher.js b/src/theme/searcher/searcher.js index 063e4a8c..63958f99 100644 --- a/src/theme/searcher/searcher.js +++ b/src/theme/searcher/searcher.js @@ -242,6 +242,7 @@ window.search = window.search || {}; function init() { resultsoptions = window.search.resultsoptions; searchoptions = window.search.searchoptions; + searchbar_outer = window.search.searchbar_outer; searchindex = elasticlunr.Index.load(window.search.index); // Set up events @@ -250,6 +251,8 @@ window.search = window.search || {}; document.addEventListener('keydown', function(e) { globalKeyHandler(e); }, false); // If the user uses the browser buttons, do the same as if a reload happened window.onpopstate = function(e) { doSearchOrMarkFromUrl(); }; + // Suppress "submit" events so the page doesn't reload when the user presses Enter + document.addEventListener('submit', function(e) { e.preventDefault(); }, false); // If reloaded, do the search or mark again, depending on the current url parameters doSearchOrMarkFromUrl(); |