From 0a2829490ff66a8fec3bded99915c71cc23e1f13 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Thu, 15 Jun 2023 17:40:02 +0300 Subject: [PATCH 1/2] Focus search box when pressing slash --- python_docs_theme/layout.html | 3 ++- python_docs_theme/static/search-focus.js | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 python_docs_theme/static/search-focus.js diff --git a/python_docs_theme/layout.html b/python_docs_theme/layout.html index b4502ba..82b7ef4 100644 --- a/python_docs_theme/layout.html +++ b/python_docs_theme/layout.html @@ -48,7 +48,7 @@

{{ _('Navigation') }}

{%- if builder != "htmlhelp" %} @@ -76,6 +76,7 @@

{{ _('Navigation') }}

{%- if not embedded %} + {%- endif -%} {%- endif -%} diff --git a/python_docs_theme/static/search-focus.js b/python_docs_theme/static/search-focus.js new file mode 100644 index 0000000..d6f2826 --- /dev/null +++ b/python_docs_theme/static/search-focus.js @@ -0,0 +1,10 @@ +document.addEventListener('keydown', function(event) { + if (event.key === '/') { + // Prevent "/" from being entered in the search box + event.preventDefault(); + + // Set the focus on the search box + let searchBox = document.getElementById('search-box'); + searchBox.focus(); + } +}); From e6c79f4bd708061428501db692f7ac40304103d1 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Fri, 16 Jun 2023 00:52:35 +0300 Subject: [PATCH 2/2] Allow / to be entered into search box, don't focus if edit already focused --- python_docs_theme/static/search-focus.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/python_docs_theme/static/search-focus.js b/python_docs_theme/static/search-focus.js index d6f2826..aa5b42f 100644 --- a/python_docs_theme/static/search-focus.js +++ b/python_docs_theme/static/search-focus.js @@ -1,10 +1,21 @@ +function isInputFocused() { + const activeElement = document.activeElement; + return ( + activeElement.tagName === 'INPUT' || + activeElement.tagName === 'TEXTAREA' || + activeElement.isContentEditable + ); +} + document.addEventListener('keydown', function(event) { if (event.key === '/') { - // Prevent "/" from being entered in the search box - event.preventDefault(); + if (!isInputFocused()) { + // Prevent "/" from being entered in the search box + event.preventDefault(); - // Set the focus on the search box - let searchBox = document.getElementById('search-box'); - searchBox.focus(); + // Set the focus on the search box + const searchBox = document.getElementById('search-box'); + searchBox.focus(); + } } }); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy