您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
一键复制
// ==UserScript== // @name TiktokShop点击复制名称插件 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 一键复制 // @author Yizhe // @match https://partner.us.tiktokshop.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // 创建 Toast 提示元素 const toast = document.createElement('div'); toast.id = 'copy-toast'; toast.style.position = 'fixed'; toast.style.top = '20px'; toast.style.right = '20px'; toast.style.backgroundColor = '#333'; toast.style.color = '#fff'; toast.style.padding = '10px 20px'; toast.style.borderRadius = '5px'; toast.style.opacity = '0'; toast.style.pointerEvents = 'none'; toast.style.transition = 'opacity 0.3s ease, transform 0.3s ease'; toast.style.transform = 'translateY(-20px)'; toast.style.zIndex = '999999'; toast.style.fontFamily = 'sans-serif'; toast.innerText = '已复制到剪贴板'; document.body.appendChild(toast); // 显示Toast的方法 function showToast() { toast.style.opacity = '1'; toast.style.transform = 'translateY(0)'; setTimeout(() => { toast.style.opacity = '0'; toast.style.transform = 'translateY(-20px)'; }, 2000); } // 初始化逻辑 function initCopyOnClick() { document.querySelectorAll('.index-title--AnTxK').forEach(el => { el.style.cursor = 'pointer'; el.addEventListener('click', async () => { const text = el.innerText.trim(); if (!text) return; try { await navigator.clipboard.writeText(text); showToast(); } catch (err) { console.error('复制失败:', err); alert('复制失败,请重试'); } }); }); } // 使用 MutationObserver 监听 DOM 变化(支持动态加载的内容) const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { mutation.addedNodes.forEach(node => { if (node.nodeType === 1) { // Element node node.querySelectorAll && node.querySelectorAll('.index-title--AnTxK').forEach(el => { if (window.getComputedStyle(el).cursor !== 'pointer') { el.style.cursor = 'pointer'; el.addEventListener('click', async () => { const text = el.innerText.trim(); if (!text) return; try { await navigator.clipboard.writeText(text); showToast(); } catch (err) { console.error('复制失败:', err); alert('复制失败,请重试'); } }); } }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); // 初始注入样式和事件监听 initCopyOnClick(); // Your code here... })();