您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
04/08/2023, 3:54:16 pm
当前为
// ==UserScript== // @name Remove the Reddit Image Overlay // @namespace RedditIngFix // @include https://i.redd.it/*.* // @grant none // @version 1.1 // @author Kane // @license MIT // @description 04/08/2023, 3:54:16 pm // ==/UserScript== if (window.attachEvent) {window.attachEvent('onload', check_and_kill);} else if (window.addEventListener) {window.addEventListener('load', check_and_kill, false);} else {document.addEventListener('load', check_and_kill, false);} function check_and_kill() { let overlay_enabled = document.getElementsByTagName("shreddit-app").length > 0; if (overlay_enabled) { let img_src = document.getElementsByTagName("img")[0].src; create_img_template(img_src); } } function addCSS(cssText) { const styleElement = document.createElement("style"); styleElement.type = "text/css"; if (styleElement.styleSheet) { styleElement.styleSheet.cssText = cssText; } else { styleElement.appendChild(document.createTextNode(cssText)); } document.head.appendChild(styleElement); } function getFilenameFromURL(url) { const segments = url.split('/'); const filename = segments[segments.length - 1]; return filename.split('?')[0].split('#')[0]; } function create_img_template(img_src) { console.log("Create img template..."); console.log(img_src); let string_css = ` html, body { margin: 0; padding: 0; width: 100%; height: 100%; } .image-container { position: relative; width: 100%; height: 100%; cursor: pointer; } .image { width: 100%; height: 100%; object-fit: contain; transition: transform 0.3s ease; } .image.full-size { top: 0; left: 0; width: auto; height: auto; width: unset; height: unset; z-index: 9999; }`; let string_js = ` document.addEventListener("DOMContentLoaded", function() { const imageContainer = document.querySelector(".image-container"); const image = document.querySelector(".image"); imageContainer.addEventListener("click", function() { if (image.classList.contains("full-size")) { // Revert to scaled size image.classList.remove("full-size"); } else { // Go full size image.classList.add("full-size"); } }); });`; let string_html_head = ` <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>${getFilenameFromURL(img_src)}</title> <style>${string_css}</style> `; let string_html_body = ` <div class="image-container"> <img src="${img_src}" alt="Image" class="image"> </div> <script>${string_js}</script>`; document.body.innerHTML = string_html_body; document.head.innerHTML = string_html_head; const imageContainer = document.getElementsByClassName("image-container")[0]; const image = document.getElementsByClassName("image")[0]; imageContainer.addEventListener("click", function() { if (image.classList.contains("full-size")) { // Revert to scaled size image.classList.remove("full-size"); } else { // Go full size image.classList.add("full-size"); } }); } function add_default_css() { let new_css = 'img {cursor: zoom-in;image-orientation: from-image;text-align: center;position: absolute;inset: 0;margin: auto;display: block;color: #eee;}'; new_css += '@media not print {:root { color: #eee;background: url("chrome://global/skin/media/imagedoc-darknoise.png") fixed;}'; addCSS(new_css); let scc_str = ` body {margin: 0;} @media not print { .fullZoomOut { cursor: zoom-out; } .fullZoomIn { cursor: zoom-in; } .shrinkToFit { cursor: zoom-in; } .overflowingVertical, .overflowingHorizontalOnly { cursor: zoom-out; } } .isInObjectOrEmbed { width: 100%; height: 100vh; } img { display: block; } @media not print { :root { color: #eee; background: url("chrome://global/skin/media/imagedoc-darknoise.png") fixed; } img.transparent { color: #222; background: hsl(0,0%,90%) url("chrome://global/skin/media/imagedoc-lightnoise.png"); } img { text-align: center; position: absolute; inset: 0; margin: auto; } img.overflowingVertical { /* If we're overflowing vertically, we need to set margin-top to 0. Otherwise we'll end up trying to vertically center, and end up cutting off the top part of the image. */ margin-top: 0; } .completeRotation { transition: transform 0.3s ease 0s; } } img { image-orientation: from-image; } `; addCSS(scc_str); }