From 49f8a190a5de848a834e82749799295fe9a4bc50 Mon Sep 17 00:00:00 2001 From: Lia Lenckowski Date: Mon, 21 Aug 2023 02:12:12 +0200 Subject: fix chrome opensearch autodiscover --- frontend/main.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'frontend/main.ts') diff --git a/frontend/main.ts b/frontend/main.ts index 7f1041a..3c301a1 100644 --- a/frontend/main.ts +++ b/frontend/main.ts @@ -4,10 +4,10 @@ import { add_page_content } from "./ui.ts" load_bangs() -globalThis.addEventListener("hashchange", () => process_url()) -globalThis.addEventListener("load", () => process_url()) +globalThis.addEventListener("hashchange", () => process_url(true)) +globalThis.addEventListener("load", () => process_url(false)) -function process_url() { +function process_url(is_hashchange: boolean) { if (document.location.hash.length != 0) { const input = document.location.hash.substring(1) const [engine, query_encoded] = input.split("#") @@ -15,6 +15,11 @@ function process_url() { const query = decodeURIComponent(query_encoded.replaceAll("+", " ")) process_query(engine, query) } else { + if (is_hashchange) + // chromium won't autodiscover the search engine if we add the link tag + // after a hashchange, so we reload the page, such that we are immediately + // on the page where we will put the link. + window.location.reload() add_page_content(engine) } } else { -- cgit v1.2.3-70-g09d2