您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
屏蔽整个网站
当前为
// ==UserScript== // @name 网页屏蔽器 test // @version 1.2.0 // @description 屏蔽整个网站 // @namespace PPPScript // @license MIT // @author PPP // @include * // @run-at document-start // @grant unsafeWindow // @grant GM_setValue // @grant GM_getValue // ==/UserScript== var PPPbanner = Object.assign(PPPbanner || {}, {top: 0, left: 0}); let hre = window.location.origin; (function() { let orig = GM_getValue("PPP_banner_bannedlist"); if(localStorage.PPP_banned_sign == 'true') GM_setValue("PPP_banner_bannedlist", (typeof orig == 'object' ? (orig[hre] = null, orig) : (orig = {}, orig[hre] = null, orig))); console.log("PPP 创作的 网页屏蔽器 屏蔽名单:", orig); })(); (function() { let orig = GM_getValue("PPP_banner_whitelist"); if(localStorage.PPP_unbanned_sign == 'true') GM_setValue("PPP_banner_whitelist", (typeof orig == 'object' ? (orig[hre] = null, orig) : (orig = {}, orig[hre] = null, orig))); console.log("PPP 创作的 网页屏蔽器 白名单:", orig); })(); if(localStorage.PPP_unbanned_sign != 'true') { if(localStorage.PPP_banned_sign == 'true') { let innerHtml = ` <head> <title> 此网站已被屏蔽 </title> <link rel="icon" href="https://我是什么东西" type="image/png"> </head> <body style="position: relative;"> <style> html { font-size: 16px; } PPP-banner { top: 1em; left: 1em; display: block; position: fixed; white-space: nowrap; -webkit-user-select: none; -moz-user-select: none; user-select: none; } PPP-banner-button:hover { filter: brightness(87.5%); } PPP-banner-button { cursor: pointer; border-radius: 0.5em; padding: 0.25em 0.5em; display: inline-block; background-color: white; border: 1px solid black; } hr{ border: 0; height: 1px; background-image: linear-gradient(to right, #AAAF, #AAA0); } a:link{ text-decoration: none; } a:active{ text-decoration: none; } a:visited{ text-decoration: none; } a:hover{ text-decoration: none; } </style> <PPP-banner> <PPP-banner-button>取消屏蔽</PPP-banner-button> </PPP-banner> <div style="margin-top: 25px; margin-left: 25px;"> <p style="font-size: 3em;"> 此网站已被屏蔽 </p> <hr> <p style="font-size: 1.5em; color: gray; margin-top: -5px;"> 来自 <a href="https://github.com/PPPxcy" target="_blank">PPP</a> 创作的 网页屏蔽器。 </p> </div> </body>`; console.log(`PPP 创作的 网页屏蔽器 已自动屏蔽该网站:${window.location.origin}`); let last = 1, now, iself, countChange = -1, first = true, dangerLevels = [1000000, 100000, 10000, 3000, 1250, 500, 200, 100, 50, 25, 10, 5, 2, 1]; for(let i = now = setInterval(function() {}, 1); i > last; i--) clearInterval(i), clearTimeout(i); last = now; iself = setInterval(function() { if(document.documentElement.innerHTML != innerHtml) { for(let i = now = setInterval(function() {}, 1); i > last; i--) if(i != iself) clearInterval(i), clearTimeout(i); last = now, countChange++, document.documentElement.innerHTML = innerHtml; if(countChange >= dangerLevels[dangerLevels.length - 1]) console.error(`请确认你的其他脚本没有问题。对抗次数已经达到 ${dangerLevels.pop()} 次。`); document.querySelector('PPP-banner > PPP-banner-button:last-child').onclick = function() { if(confirm(`您确定要取消屏蔽该网站吗?(${hre})`) === true) { let orig = GM_getValue("PPP_banner_bannedlist"); GM_setValue("PPP_banner_bannedlist", typeof orig == 'object' ? (delete orig[hre], orig) : {}); delete localStorage.PPP_banned_sign; window.location.reload(); } }; if(first) innerHtml = document.documentElement.innerHTML, first = false; } }, 16); } else { let innerHtml = ` <style> PPP-banner { top: ${localStorage.PPP_banner_lasttop == undefined ? (localStorage.PPP_banner_lasttop = 16) : localStorage.PPP_banner_lasttop}px; left: ${localStorage.PPP_banner_lastleft == undefined ? (localStorage.PPP_banner_lastleft = 16) : localStorage.PPP_banner_lastleft}px; display: block; position: fixed; font-size: 16px; z-index: 998244353; white-space: nowrap; pointer-events: none; font-family: sans-serif; -webkit-user-select: none; -moz-user-select: none; user-select: none; } PPP-banner-dragger:hover, PPP-banner-button:hover { filter: brightness(87.5%); } PPP-banner-dragger { width: 2em; height: 2em; z-index: 998244353; position: relative; border-radius: 0.5em; pointer-events: auto; display: inline-block; vertical-align: middle; background-color: #555; } PPP-banner-dragger:hover { cursor: grab; } PPP-banner-dragger::before { width: 2em; height: 2em; overflow: hidden; content: "\\FEFF"; border-radius: 1em; display: inline-block; background-image: radial-gradient(white, #EEEE 19%, #AAAA 55%, #5555 77%, transparent); } PPP-banner-button { cursor: pointer; z-index: 998244353; position: relative; border-radius: 0.5em; pointer-events: auto; display: inline-block; padding: 0.25em 0.5em; vertical-align: middle; background-color: white; border: 1px solid black; } </style> <PPP-banner> <PPP-banner-dragger draggable="true" title="拖拽以移动按钮"></PPP-banner-dragger> <PPP-banner-button>屏蔽该网站</PPP-banner-button> <PPP-banner-button>隐藏</PPP-banner-button> </PPP-banner> `; console.log(`PPP 创作的 网页屏蔽器 已开启`); setInterval(function() { if(document.querySelector('PPP-banner') == null) { document.body.insertAdjacentHTML("beforeend", innerHtml); document.documentElement.ondragover = function(event) { event.preventDefault(); }; document.body.querySelector('PPP-banner-dragger').ondragstart = function(event) { // if(event.x !== undefined) // console.dir(event); PPPbanner.top = event.clientY - document.querySelector('PPP-banner').style.top.substr(0, document.querySelector('PPP-banner').style.top.length - 2); PPPbanner.left = event.clientX - document.querySelector('PPP-banner').style.left.substr(0, document.querySelector('PPP-banner').style.left.length - 2); }; document.body.querySelector('PPP-banner-dragger').ondragend = function(event) { document.querySelector('PPP-banner').style.top = Math.min(Math.max(0, localStorage.PPP_banner_lasttop = event.clientY - PPPbanner.top), window.innerHeight - document.body.querySelector('PPP-banner').getBoundingClientRect().height) + 'px'; document.querySelector('PPP-banner').style.left = Math.min(Math.max(0, localStorage.PPP_banner_lastleft = event.clientX - PPPbanner.left), window.innerWidth - document.body.querySelector('PPP-banner').getBoundingClientRect().width) + 'px'; }; document.querySelector('PPP-banner > PPP-banner-button:not(PPP-banner > PPP-banner-button:last-child)').onclick = function(event) { if(confirm(`您确定要屏蔽该网站吗?(${hre})`) === true) { localStorage.PPP_banned_sign = 'true'; let orig = GM_getValue("PPP_banner_bannedlist"); GM_setValue("PPP_banner_bannedlist", typeof orig == 'object' ? (orig[hre]= null, orig) : (orig = {}, orig[hre]= null, orig)); window.location.reload(); } }; document.querySelector('PPP-banner > PPP-banner-button:last-child').onclick = function(event) { if(confirm(`您确定要取消此按钮吗?(在 ${hre})`) === true) { if(confirm(`要永久隐藏吗?(否则本次会话会隐藏)`) == true) { localStorage.PPP_unbanned_sign = 'true'; let orig = GM_getValue("PPP_banner_whitelist"); GM_setValue("PPP_banner_whitelist", typeof orig == 'object' ? (orig[hre]= null, orig) : (orig = {}, orig[hre]= null, orig)); } document.querySelector('PPP-banner').style.display = 'none'; } }; setInterval(function() { document.querySelector('PPP-banner').style.top = Math.min(Math.max(0, localStorage.PPP_banner_lasttop), window.innerHeight - document.body.querySelector('PPP-banner').getBoundingClientRect().height) + 'px'; document.querySelector('PPP-banner').style.left = Math.min(Math.max(0, localStorage.PPP_banner_lastleft), window.innerWidth - document.body.querySelector('PPP-banner').getBoundingClientRect().width) + 'px'; }, 16); } }, 16); } } if(!(localStorage.PPP_unbanned_sign != 'true' && localStorage.PPP_banned_sign == 'true')) { let styles = document.createElement('style'); styles.innerText = `a[href][PPP-banned] { filter: sepia(1); }`; document.head.appendChild(styles); setInterval(function() { let orig = GM_getValue('PPP_banner_bannedlist'), alist = [...document.querySelectorAll('a[href]:not(a[href][PPP-checked])')]; for(let i = 0; i < alist.length; i++) { if(orig[new URL(alist[i].getAttribute('href'), window.location.href).origin] !== undefined) alist[i].setAttribute('PPP-banned', ''), alist[i].setAttribute('title', "你屏蔽了它:" + new URL(alist[i].getAttribute('href'), window.location.href).origin + ",对吧?\n\n来自由 PPP 创作的 网页屏蔽器。"); else alist[i].setAttribute('PPP-checked', ''); } }, 16); }