mirror of
https://github.com/tauri-apps/tauri-plugin-shell.git
synced 2026-01-31 00:45:19 +01:00
Committed via a GitHub action: https://github.com/tauri-apps/plugins-workspace/actions/runs/13350945431 Co-authored-by: Legend-Master <Legend-Master@users.noreply.github.com>
41 lines
1.0 KiB
TypeScript
41 lines
1.0 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) {
|
|
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)
|
|
}
|