您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
get the ticket title
// ==UserScript== // @name issue-tools // @namespace http://tampermonkey.net/ // @version 0.6 // @description get the ticket title // @author simpleyzh // @match https://wonder.atlassian.net/browse/** // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // ==/UserScript== (function () { 'use strict'; const text = "{issue_numbers} {title}" waitElementLoaded("css-1gd7hga", (els) => { console.log("els============>"); console.log(els); let numberStr = ""; for (let i = 2; i < els.length && i < 4; i++) { let issue_number if (i == els.length - 1) { issue_number = els[i].innerHTML; } else { let number = els[i].innerHTML; if (isNaN(Number(number.substring(number.lastIndexOf('-') + 1)))) continue; issue_number = number } numberStr += issue_number; if (i == 2 ) { numberStr += '/' } } let title = document.getElementsByClassName("_1mouidpf _1dyz4jg8 _1p1dglyw _11c8nf1z _syaz1fxt")[0].innerHTML; console.log("title => " + title); let header =document.getElementsByClassName("_1reoewfl _18m9ewfl _1e0c1txw _16jlidpf")[0]; if (!header) { console.log("header not found") } var para = document.createElement("button"); para.setAttribute("style", "text;padding-left: 10px; font-size:17px;color:#a0006b;cursor: pointer;background-color: #008cba8a;border-radius: 4px;border: 0px;"); para.innerText = "cpoy"; para.addEventListener("click", () => { copyText(text.replace("{issue_numbers}", numberStr).replace("{title}", title)) }); let input = document.createElement("input"); input.setAttribute("id", "copy-board"); input.setAttribute("style", "position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;"); para.appendChild(input); header.appendChild(para); }, 3); function copyText(value) { let input = document.getElementById("copy-board"); input.value = value; input.select(); // 选中文本 document.execCommand("copy"); // 执行浏览器复制命令 console.log("复制成功, value => " + value) } // Your code here... function waitElementLoaded(cName, func) { var count = 0; let timer = setInterval(() => { console.log("=========================="); count++; if (count > 50) { clearInterval(timer); } let element = document.getElementsByClassName(cName); if (element) { clearInterval(timer); func(element); } }, 1500); } })();