UNPKG

@ryanuo/utils

Version:

提供多种实用工具函数,涵盖算法、浏览器操作、网络请求等多个领域

60 lines (59 loc) 1.87 kB
export function manageClasses(el, action, classes) { classes.forEach((cls) => el.classList[action](cls)); } export function onceEventListener(target, event, handler) { const wrapper = (e) => { handler(e); target.removeEventListener(event, wrapper); }; target.addEventListener(event, wrapper); } export function isMobile() { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ); } export async function copyToClipboard(text) { try { await navigator.clipboard.writeText(text); return true; } catch { const textarea = document.createElement("textarea"); textarea.value = text; document.body.appendChild(textarea); textarea.select(); if (!document?.execCommand) return false; const result = document?.execCommand("copy"); document.body.removeChild(textarea); return result; } } export function enterFullScreen(selector, event = "click") { const elements = document.querySelectorAll(selector); if (elements.length === 0) { console.error(`No elements found for selector ${selector}`); return; } if (!document.fullscreenEnabled) { console.error("Your browser does not support fullscreen mode"); return; } elements.forEach((element) => { element.addEventListener(event, async () => { try { if (document.documentElement.requestFullscreen) { await document.documentElement.requestFullscreen(); } else if ("webkitRequestFullscreen" in document.documentElement) { ; document.documentElement.webkitRequestFullscreen(); } else if ("msRequestFullscreen" in document.documentElement) { ; document.documentElement.msRequestFullscreen(); } } catch (err) { console.error("Failed to enter fullscreen:", err); } }); }); }