您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Block bontoon to delete canvas (or readding them) so you can load images without problem
// ==UserScript== // @name Let me download // @namespace http://tampermonkey.net/ // @version 2024-12-30 // @description Block bontoon to delete canvas (or readding them) so you can load images without problem // @author Sylv1 // @match https://*.bontoon.com/viewer/* // @icon https://www.google.com/s2/favicons?sz=64&domain=bontoon.com // @grant none // @license MIT // @run-at document-idle // ==/UserScript== (function() { 'use strict'; const originalAppend = HTMLElement.prototype.append; HTMLElement.prototype.append = function (...nodes) { // Check if a <canvas> is being appended and if there's already a <canvas> child const containsCanvas = Array.from(this.children).some((child) => child.tagName === 'CANVAS'); const isAppendingCanvas = nodes.some((node) => node instanceof HTMLCanvasElement); if (isAppendingCanvas && containsCanvas) { console.warn('Blocked appending a <canvas> because one already exists in this element.'); return; } // Call the original append method return originalAppend.apply(this, nodes); }; const originalRemoveChild = HTMLElement.prototype.removeChild; HTMLElement.prototype.removeChild = function (child) { const childIsCanvas = child.tagName === 'CANVAS'; const isCanvasViewer = this.className.includes("CanvasViewer"); if (childIsCanvas && isCanvasViewer) { console.warn('Blocked deleting a <canvas> because it contain data.'); return null; } return originalRemoveChild.call(this, child); } console.log("[-] Script `Let me download` successfully loaded ! Happy downloading !") })();