您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
free the right-click menu! You can right-click to open images in a new window
// ==UserScript== // @name OnlyFans Right-Click Enabler // @namespace http://greasyfork.org/ // @version 1.2 // @description free the right-click menu! You can right-click to open images in a new window // @license MIT // @author guywmustang // @match https://onlyfans.com/* // @match https://patreon.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=onlyfans.com // @require https://code.jquery.com/jquery-3.7.1.min.js // @grant none // @run-at document-end // ==/UserScript== (function () { "use strict"; function enableContextMenu(aggressive = false) { console.log("enable context menu"); void (document.ondragstart = null); void (document.onselectstart = null); void (document.onclick = null); void (document.onmousedown = null); void (document.onmouseup = null); void (document.body.oncontextmenu = null); enableRightClickLight(document); if (aggressive) { enableRightClick(document); removeContextMenuOnAll("body"); removeContextMenuOnAll("img"); removeContextMenuOnAll("td"); } console.log("adding jquery click handler"); $("document").on('click', 'div', function (e) { console.log("clicked: " + this.id); }); } function removeContextMenuOnAll(tagName) { var elements = document.getElementsByTagName(tagName); for (var i = 0; i < elements.length; i++) { enableRightClick(elements[i]); } } function enableRightClickLight(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); } function enableRightClick(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); el.addEventListener("dragstart", bringBackDefault, true); el.addEventListener("selectstart", bringBackDefault, true); el.addEventListener("click", bringBackDefault, true); el.addEventListener("mousedown", bringBackDefault, true); el.addEventListener("mouseup", bringBackDefault, true); } function restoreRightClick(el) { el || (el = document); el.removeEventListener("contextmenu", bringBackDefault, true); el.removeEventListener("dragstart", bringBackDefault, true); el.removeEventListener("selectstart", bringBackDefault, true); el.removeEventListener("click", bringBackDefault, true); el.removeEventListener("mousedown", bringBackDefault, true); el.removeEventListener("mouseup", bringBackDefault, true); } function bringBackDefault(event) { event.returnValue = true; typeof event.stopPropagation === "function" && event.stopPropagation(); typeof event.cancelBubble === "function" && event.cancelBubble(); } setTimeout(enableContextMenu(), 100); var waitForEl = function(selector, callback) { var $elem = $(selector); if ($elem.length && $elem[0].style && !$elem[0].style.opacity) { callback(); } else { setTimeout(function() { waitForEl(selector, callback); }, 100); } }; // Add a title to the popup div when the post is clicked $(document).on('mouseup', 'div.post_img_block', function() { // Make sure the title is on the container div waitForEl('.pswp__img', function() { // work the magic $('.pswp__img')[0].title = "Right-Click to open image in a new window"; }); }); var RIGHT_MOUSE_BUTTON = 3; // Handle the large image right-click targeting the proper inner image $(document).on('mouseup', 'div.pswp__img', function (e) { // alert("clicked: " + this.id); if (e.which == RIGHT_MOUSE_BUTTON) { // target the context menu on the image itself var img = $(e.currentTarget.children)[0]; window.open(img.src); } }); })();