// ==UserScript== // @name 有赞订单复制助手 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 在有赞订单页面添加复制按钮 // @author Your name // @match *://*.youzan.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // 添加复制功能 function copyToClipboard(text) { const textarea = document.createElement('textarea'); textarea.value = text; document.body.appendChild(textarea); textarea.select(); document.execCommand('copy'); document.body.removeChild(textarea); } // 创建复制按钮 function createCopyButton(text) { const button = document.createElement('button'); button.textContent = '复制'; button.style.marginLeft = '5px'; button.style.padding = '2px 8px'; button.style.cursor = 'pointer'; button.onclick = () => { copyToClipboard(text); button.textContent = '已复制'; setTimeout(() => { button.textContent = '复制'; }, 1000); }; return button; } // 主函数:添加复制按钮 function addCopyButtons() { // 查找订单编号元素 const orderNumberElements = document.querySelectorAll('.order-item__header .info-wrapper span.basic:first-child'); // 查找实收价格元素 const realPayElements = document.querySelectorAll('.cell.cell--realpay'); // 为订单编号添加复制按钮 orderNumberElements.forEach(element => { if (!element.querySelector('button')) { const orderText = element.textContent.trim().replace('订单编号:', ''); const copyButton = createCopyButton(orderText); element.appendChild(copyButton); } }); // 为实收价格和运费添加复制按钮 realPayElements.forEach(element => { if (!element.querySelector('button')) { // 获取实收价格(第一个文本节点的值) const realPayText = element.childNodes[0].textContent.trim(); const realPayButton = createCopyButton(realPayText); element.insertBefore(realPayButton, element.firstChild.nextSibling); // 获取运费(从 postage 类的元素中提取) const postageElement = element.querySelector('.postage'); if (postageElement) { const postageText = postageElement.textContent.match(/¥([\d.]+)/)[1]; const postageButton = createCopyButton(postageText); postageElement.appendChild(postageButton); } } }); } // 监听页面变化 const observer = new MutationObserver(() => { addCopyButtons(); }); // 开始观察 observer.observe(document.body, { childList: true, subtree: true }); // 初始运行 addCopyButtons(); })();