有赞订单复制助手
// ==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();
})();