Qwant Keyboard Shortcuts

Adds two keyboard shortcuts. Default '/' key to select search field to start typing again. And default 'Enter' key to open first search result. Has some incorrect behaviour in very weird use cases like: after a search, selecting the search field again and hitting enter without having changed the search query

// ==UserScript==
// @name         Qwant Keyboard Shortcuts
// @namespace    http://github.com/mirdevilar
// @version      1.0.0
// @description  Adds two keyboard shortcuts. Default '/' key to select search field to start typing again. And default 'Enter' key to open first search result. Has some incorrect behaviour in very weird use cases like: after a search, selecting the search field again and hitting enter without having changed the search query
// @author       alekarhis
// @match        *://*.qwant.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=qwant.com
// @grant        none
// @license      MIT
// ==/UserScript==

(() => {

    console.log('qwant shortcuts running');
    'use strict';

    // KEY CODES REFERENCES:
    //	 Mozilla Docs: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values
    //   Handy web app: https://keyjs.dev/
    const keys = {
        focusSearch: "/",
        openFirstResult: "Enter"
    }

    const queries = {
        searchInput: 'input',
        firstResult: 'section._1jQTj div._2NDle div._35zId a'
    }

    document.onkeypress = (e) => {

        if (e.key === keys.focusSearch) {
            const input = document.querySelector(queries.searchInput)

            if (document.activeElement !== input) {
                e.preventDefault()
                input.focus()
            }
        } else if (e.key === keys.openFirstResult) {
            e.preventDefault()
            const link = document.querySelector(queries.firstResult)
            const input = document.querySelector(queries.searchInput)

            console.log(document.activeElement)

            if ((document.activeElement !== input) && link) {
                console.log(link)
                location.href = link.href
            }
        }
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址