您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
点开图片向左上角添加一个下载按钮. GPT NB!
// ==UserScript== // @name web.telegram下载被禁止下载的图片 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 点开图片向左上角添加一个下载按钮. GPT NB! // @author ohy // @match https://web.telegram.org/k/ // @icon https://www.google.com/s2/favicons?sz=64&domain=telegram.org // @grant GM_registerMenuCommand // @license MIT // ==/UserScript== (function() { const downloadBtn = document.createElement('button'); downloadBtn.className = 'btn-icon tgico-download'; // 给下载按钮添加一个点击事件监听器 downloadBtn.addEventListener('click', () => { const xhr = new XMLHttpRequest(); xhr.open("GET", window.globalVar, true); xhr.responseType = "blob"; xhr.onload = function(e) { if (this.status === 200) { const blob = this.response; const img = document.createElement("img"); img.src = URL.createObjectURL(blob); const a = document.createElement('a'); const randomValue = Math.random(); const fileName = `${randomValue}.jpg`; a.href = img.src; a.download = fileName; a.style.display = 'none'; document.body.appendChild(a); a.click(); URL.revokeObjectURL(a.href); document.body.removeChild(a); console.log('图片已下载到本地'); } timerId = setTimeout(checkElement, 10); // 间隔1秒再次检查元素 }; xhr.send(); }); // 找到用于定位下载按钮位置的元素,并将下载按钮添加到其后面 window.globalVar = ""; let timerId = null; // 定义一个变量,用于保存定时器ID function checkElement() { const element = document.querySelector("#page-chats > div.media-viewer-whole.no-forwards.active > div.media-viewer-movers > div.media-viewer-mover.center.no-transition.active > div > img"); if (element) { const jss = document.querySelector("#page-chats > div.media-viewer-whole.no-forwards.active > div.media-viewer-movers > div.media-viewer-mover.center.no-transition.active > div > img").src; const url = jss; if (url !== window.globalVar) { window.globalVar = url; // 更新全局变量的值 const zoomInBtn = document.querySelector('.btn-icon.tgico-zoom.zoom-in'); zoomInBtn.insertAdjacentElement('afterend', downloadBtn); } timerId = setTimeout(checkElement, 100); // 间隔100毫秒再次检查元素 } else { timerId = setTimeout(checkElement, 100); // 间隔100毫秒再次检查元素 } } // 开始定时器 timerId = setTimeout(checkElement, 100); })();