您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds Copy URL and Copy Name buttons
// ==UserScript== // @name WordPress.org Plugins // @namespace https://wpdevdesign.com/ // @version 0.1 // @description Adds Copy URL and Copy Name buttons // @author Sridhar Katakam // @match https://wordpress.org/plugins/* // @icon https://www.google.com/s2/favicons?sz=64&domain=wordpress.org // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; function copyToClipboard(event) { const buttonText = event.target.textContent; let helper = document.createElement('input'); document.body.appendChild(helper); helper.value = this.value; helper.select(); document.execCommand('copy'); this.textContent = "Copied ✓"; setTimeout(() => { this.textContent = buttonText; }, 1000) helper.remove(); event.preventDefault(); event.stopPropagation(); } const entryHeaders = document.getElementsByClassName('entry-header'); document.querySelectorAll('.entry-header').forEach(el => { el.querySelector('.entry-title').style.cssText = "margin-bottom: 0;"; let href = el.querySelector('.entry-title a').href; let name = el.querySelector('.entry-title a').textContent; let buttonStyles = "cursor: pointer; border-radius: 4px; padding: 5px 10px; border: 1px solid #fff; font-size: 11px; background-color: #3e58e1; color: #fff; min-width: 82px;"; let buttonHoverStyles = "cursor: pointer; border-radius: 4px; padding: 5px 10px; border: 1px solid #fff; font-size: 11px; background-color: #213fd4; color: #fff; min-width: 82px;"; let copyUrlButton = document.createElement("button"); copyUrlButton.textContent = "Copy Link"; copyUrlButton.value = href; copyUrlButton.style.cssText = buttonStyles; copyUrlButton.addEventListener('mouseover',function(){ this.style.cssText = buttonHoverStyles; }) copyUrlButton.addEventListener('mouseleave',function(){ this.style.cssText = buttonStyles; }) copyUrlButton.addEventListener("click", copyToClipboard); let copyNameButton = document.createElement("button"); copyNameButton.textContent = "Copy Name"; copyNameButton.value = name; copyNameButton.style.cssText = buttonStyles; copyNameButton.addEventListener('mouseover',function(){ this.style.cssText = buttonHoverStyles; }) copyNameButton.addEventListener('mouseleave',function(){ this.style.cssText = buttonStyles; }) copyNameButton.addEventListener("click", copyToClipboard); let buttonsDiv = document.createElement("div"); buttonsDiv.className = 'entry-buttons'; buttonsDiv.style.cssText = "display: flex; gap: 6px; align-items: center; margin-top: 8px; margin-bottom: 8px;"; el.append(buttonsDiv); buttonsDiv.append(copyUrlButton); buttonsDiv.append(copyNameButton); }); })();