Files
tauri-plugins-workspace/plugins/shell/guest-js/init.ts
T
renovate[bot] faa89850d0 chore(deps): replace dependency eslint-config-standard-with-typescript with eslint-config-love 43.1.0 (#1228)
* chore(deps): replace dependency eslint-config-standard-with-typescript with eslint-config-love 43.1.0

* actually apply the rules lol

* rebuild

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2024-04-23 00:40:51 +02:00

41 lines
1.1 KiB
TypeScript

// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
import { invoke } from "@tauri-apps/api/core";
// open <a href="..."> links with the API
function openLinks(): void {
document.querySelector("body")?.addEventListener("click", function (e) {
let target: HTMLElement | null = e.target as HTMLElement;
while (target != null) {
if (target.matches("a")) {
const t = target as HTMLAnchorElement;
if (
t.href !== "" &&
["http://", "https://", "mailto:", "tel:"].some((v) =>
t.href.startsWith(v),
) &&
t.target === "_blank"
) {
void invoke("plugin:shell|open", {
path: t.href,
});
e.preventDefault();
}
break;
}
target = target.parentElement;
}
});
}
if (
document.readyState === "complete" ||
document.readyState === "interactive"
) {
openLinks();
} else {
window.addEventListener("DOMContentLoaded", openLinks, true);
}