export const getAssetURL = (image: string) => { // 参数一: 相对路径 // 参数二: 当前路径的URL if (import.meta.client) { return new URL(`../assets/images/${image}`, import.meta.url).href } return `/_nuxt/assets/images/${image}` } // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type export const debounce = (fn: Function, delay: number) => { let timeoutId: NodeJS.Timeout return (...args: unknown[]) => { clearTimeout(timeoutId) timeoutId = setTimeout(() => { fn(...args) }, delay) } } export const setMobileTopColor = () => { const lightMeta = document.createElement('meta') lightMeta.setAttribute('name', 'theme-color') lightMeta.setAttribute('media', '(prefers-color-scheme: light)') lightMeta.setAttribute('content', '#60a5fa') const darkMeta = document.createElement('meta') darkMeta.setAttribute('name', 'theme-color') darkMeta.setAttribute('media', '(prefers-color-scheme: dark)') darkMeta.setAttribute('content', '#60a5fa') document.head.appendChild(lightMeta) document.head.appendChild(darkMeta) } export const removeMobileTopColor = () => { document.querySelectorAll('meta[name="theme-color"]').forEach(meta => meta.remove()) }