您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a button to copy text to clipboard inside an <li> with specific classes before the first element in toolbar-items
// ==UserScript== // @name Copy Text to Clipboard // @namespace http://tampermonkey.net/ // @version 1.1 // @description Adds a button to copy text to clipboard inside an <li> with specific classes before the first element in toolbar-items // @author Nomind // @match *://*/* // @grant none // @license GPL License // ==/UserScript== (function() { function getConntent(){ const url = window.location.href; // 使用正则表达式提取项目名称和任务 ID const regex = /projects\/([^\/]+)\/work_packages\/(\d+)/; const match = url.match(regex); if (match) { const projectName = match[1].toUpperCase(); // 提取项目名称 const taskId = match[2]; // 提取任务 ID const detail = document.getElementsByClassName("inline-edit--display-field subject -required -editable")[0].title; return `git commit -m "${projectName}-${taskId}: ${detail}"` } else { console.log('未能匹配到项目名称和任务 ID'); } return ''; } 'use strict'; // 创建一个新的 <li> 元素,并添加类 const listItem = document.createElement('li'); listItem.className = 'toolbar-item hidden-for-tablet'; // 添加类 // 创建按钮 const button = document.createElement('button'); button.innerText = '复制文本'; button.className = 'button -primary'; // 添加按钮类 // 将按钮添加到 <li> 中 listItem.appendChild(button); // 检查目标元素是否存在的函数 function checkForElement() { const toolbarItems = document.getElementById('toolbar-items'); if (toolbarItems) { // 找到第一个子元素 const firstChild = toolbarItems.firstChild; // 在第一个子元素前插入 <li> toolbarItems.insertBefore(listItem, firstChild); // 添加按钮点击事件 button.addEventListener('click', () => { navigator.clipboard.writeText(getConntent()).then(() => { alert(getConntent()); }).catch(err => { console.error('复制失败: ', err); }); }); } else { // 如果元素不存在,继续检查 setTimeout(checkForElement, 100); // 每100毫秒检查一次 } } // 开始检查 checkForElement(); })();