diff options
-rw-r--r-- | frontend/main.ts | 11 |
1 files changed, 8 insertions, 3 deletions
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 { |