Browse Source

[fix] search: autocomplete focus on results page

This has been a regression introduced with the removal of
the unmaintained autocomplete.js library.

We should only focus the search bar on the main search page at `/`
and not at the results page located at `/search`.

I'm not sure if there's a better way to figure out if
we're on the results page than checking if the id of the
main element is `#main_results`, checking the path
obviously isn't a better solution because it can differ
depending on the instance / reverse proxy / ....

- related to https://github.com/searxng/searxng/commit/32823ecb69b115a6726475d6421f0a1c0327fafa
- closes https://github.com/searxng/searxng/issues/4846
Bnyro 1 week ago
parent
commit
9dfdd30da0
1 changed files with 2 additions and 1 deletions
  1. 2 1
      client/simple/src/js/main/search.js

+ 2 - 1
client/simple/src/js/main/search.js

@@ -7,6 +7,7 @@
   var qinput_id = "q", qinput;
 
   const isMobile = window.matchMedia("only screen and (max-width: 50em)").matches;
+  const isResultsPage = document.querySelector("main").id == "main_results";
 
   function submitIfQuery () {
     if (qinput.value.length  > 0) {
@@ -87,7 +88,7 @@
 
   searxng.ready(function () {
     // focus search input on large screens
-    if (!isMobile) document.getElementById("q").focus();
+    if (!isMobile && !isResultsPage) document.getElementById("q").focus();
 
     qinput = d.getElementById(qinput_id);
     const autocomplete = d.querySelector(".autocomplete");