您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Re-enables right click on image and video embeds in Discord, since the new custom context menu update.
当前为
- // ==UserScript==
- // @name Discord Embed Right Click Enabler
- // @namespace https://greasyfork.org
- // @version 1.3.1
- // @description Re-enables right click on image and video embeds in Discord, since the new custom context menu update.
- // @author ScocksBox
- // @icon https://i.imgur.com/ZOKp8LH.png
- // @include https://discord.com/*
- // @license MIT
- // @run-at document-end
- // @grant none
- // ==/UserScript==
- /* jshint esversion: 6 */
- const selectors = [
- ".message-2CShn3 img:not(.avatar-2e8lTP):not(.replyAvatar-sHd2sU)", // image embeds
- ".message-2CShn3 video", // video embeds
- ".message-2CShn3 .metadataDownload-3IY84h", // video download buttons
- ".message-2CShn3 .attachment-1PZZB2 a", // file download button and link
- ".message-24k8JL img:not(.avatar-2e8lTP):not(.replyAvatar-sHd2sU)", // images embeds in search
- ".message-24k8JL video", // video embeds in search
- ".originalLink-Azwuo9" // image links
- ];
- const selectorStr = selectors.join(", ");
- var callback = function (mutationsList, observer) {
- for (const mutation of mutationsList) {
- for (const added of mutation.addedNodes) {
- if (added.nodeType !== Node.ELEMENT_NODE) {
- continue;
- }
- if (added.matches(selectorStr)) {
- added.addEventListener('contextmenu', function(event) {
- event.stopImmediatePropagation();
- }, true);
- }
- const elements = added.querySelectorAll(selectorStr);
- for (let i = 0; i < elements.length; i++) {
- let el = elements[i];
- el.addEventListener('contextmenu', function(event) {
- event.stopImmediatePropagation();
- }, true);
- }
- }
- }
- };
- const observer = new MutationObserver(callback);
- observer.observe(document.body, { childList: true, subtree: true });