Fix broken Discord channel/thread/message devmode "Copy ID" buttons in Firefox.
当前为
// ==UserScript==
// @name Discord Devmode Copy ID Fix (Firefox)
// @description Fix broken Discord channel/thread/message devmode "Copy ID" buttons in Firefox.
// @author You
// @version 0.2
// @namespace https://greasyfork.org/users/1376767
// @match https://discord.com/*
// @grant GM_setClipboard
// ==/UserScript==
(function() {
'use strict';
function addClickEventCopyId(node) {
const match = node.id.match(/(\d+)$/); // id="channel-context-devmode-copy-id-123456" > extract end digits
if (match) {
const channelId = match[1];
node.addEventListener(
'click',
function(event) { GM_setClipboard(channelId); },
{ once: true }
);
}
}
const observer = new MutationObserver(mutations => {
mutations.forEach(mutation => { mutation.addedNodes.forEach(node => { if (node.nodeType === Node.ELEMENT_NODE) {
// console.log(node);
// Right click popup menu identifiable by <div class="clickTrapContainer_ trapClicks_">
if (node.className && /clickTrapContainer_.*trapClicks_/.test(node.className)) {
const menu = node;
menu.querySelectorAll('[role="menuitem"][id*="-devmode-copy-id-"]').forEach(menuItem => {
setTimeout(() => addClickEventCopyId(menuItem), 100);
});
// menu.querySelectorAll('[role="menuitem"]').forEach(menuItem => {
// console.log(menuItem)
// });
}
}});});
});
observer.observe(document.body, { childList: true, subtree: true });
})();