summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Brubeck <mbrubeck@gmail.com>2018-04-21 08:27:51 -0700
committerMichael Bryan <michaelfbryan@gmail.com>2018-04-21 23:27:51 +0800
commit1c71eaa96471a0d0ef5cdb051315b068d07419bc (patch)
tree611df931e2f6830b9ee83f75be4b8cbac8a90a25
parentc195aa990dab9fd3f6524ae4c956c775076555c2 (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.hbs6
-rw-r--r--src/theme/searcher/searcher.js3
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();