UNPKG

@ryanuo/utils

Version:

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

66 lines (65 loc) 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.copyToClipboard = copyToClipboard; exports.enterFullScreen = enterFullScreen; exports.isMobile = isMobile; exports.manageClasses = manageClasses; exports.onceEventListener = onceEventListener; function manageClasses(el, action, classes) { classes.forEach(cls => el.classList[action](cls)); } function onceEventListener(target, event, handler) { const wrapper = e => { handler(e); target.removeEventListener(event, wrapper); }; target.addEventListener(event, wrapper); } function isMobile() { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); } 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; } } 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); } }); }); }