您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
默认不载入面积较大的 <iframe> 元素,减免一部分不必要的资源消耗。不是 lazyload;点击按钮(而不是点击 <iframe> 的任意位置)才会加载,以免误触。
// ==UserScript== // @name <iframe> click to load // @name:zh-CN 手动加载 <iframe> // @description Reduce some unnecessary resource consumption by suspend the <iframe>s with larger area. NOT lazyload; click a button instead anywhere in the whole <iframe> element so one won't mis-click. // @description:zh-CN 默认不载入面积较大的 <iframe> 元素,减免一部分不必要的资源消耗。不是 lazyload;点击按钮(而不是点击 <iframe> 的任意位置)才会加载,以免误触。 // @namespace RainSlide // @author RainSlide // @version 1.3 // @match *://*/* // @exclude-match *://web.archive.org/web/* // @exclude-match *://codepen.io/* // @exclude-match *://music.163.com/* // @exclude-match *://*.chaoxing.com/* // @grant none // @inject-into content // @run-at document-end // ==/UserScript== "use strict"; document.querySelectorAll('iframe').forEach( iframe => { const src = iframe.getAttribute("src"); const srcdoc = iframe.getAttribute("srcdoc"); const width = iframe.clientWidth; const height = iframe.clientHeight; const srcURL = src !== null && src !== "" && // less try ... catch (() => { try { return new URL(src); } catch (e) { return false; } })(); // attribute // src should be an vaild HTTP/HTTPS URL with a non-null origin, // srcdoc attribute should not exist srcURL instanceof URL && srcURL.origin !== "null" && /^https?:$/.test(srcURL.protocol) && srcdoc === null && // content size // padding of <iframe> included width >= 72 && height >= 72 && ( width + height ) >= 256 && iframe.setAttribute("srcdoc", `<style>${ `html, body { display: flex; flex-direction: column; justify-content: center; align-items: center; } html { min-width: 5em; min-height: 100%; border: 2px dashed currentColor; box-sizing: border-box; } a { margin-bottom: 1ex; word-break: break-all; font-family: monospace; }`.replace(/\n\t/g, " ").replace(/;\n\}/g, "; }") }</style> <a href="${ iframe.src }" target="_blank" rel="noreferrer noopener">${ iframe.src }</a> <button onclick="window.frameElement.removeAttribute('srcdoc')">${ new Map([ ["en-US", "Load"], ["zh-CN", "加载"], ["zh-TW", "加載"], ["zh-HK", "加載"] ]).get( navigator.language ) || "Load" }</button>` ); } );