Greasy Fork is available in English.
屏蔽整个网站
当前为
// ==UserScript==
// @name 网站屏蔽器
// @version 1.1.0
// @description 屏蔽整个网站
// @namespace PPPScript
// @license MIT
// @author PPP
// @include *
// @grant unsafeWindow
// ==/UserScript==
if(localStorage.PPP_unbanned_sign != 'true') {
let hre = window.location.origin;
if(localStorage.PPP_banned_sign == 'true') {
let innerHtml = `<head>
<title>
此网站已被屏蔽
</title>
</head>
<body style="position: relative;">
<style>
PPP-banner {
top: 1em;
left: 1em;
position: fixed;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
PPP-banner-button {
cursor: pointer;
font-size: 16px;
border-radius: 0.5em;
padding: 0.25em 0.5em;
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-button onclick="console.log(); if(confirm('您确定要取消屏蔽该网站吗?(${hre})') === true) { localStorage.PPP_banned_sign = null; window.location.reload(); }">取消屏蔽</PPP-banner-button>
<div style="margin-top: 25px; margin-left: 25px;">
<p style="font-size: 54px;">
此网站已被屏蔽
</p>
<hr>
<p style="font-size: 24px; color: gray; padding-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, countChange = -1, 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;
setInterval(function() {
if(document.documentElement.innerHTML != innerHtml) {
for(let i = now = setInterval(function() {}, 1); i > last; i--)
clearInterval(i), clearTimeout(i);
last = now, countChange++, document.documentElement.innerHTML = innerHtml;
if(countChange > dangerLevels[dangerLevels.length])
console.error(`请确认你的其他脚本没有问题。对抗次数已经达到 ${dangerLevels.pop()} 次。`);
}
}, 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;
width: 100vw;
position: fixed;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
PPP-banner-dragger {
width: 2em;
height: 2em;
position: relative;
border-radius: 0.5em;
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;
font-size: 16px;
z-index: 998244353;
position: relative;
border-radius: 0.5em;
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 onclick="if(confirm('您确定要屏蔽该网站吗?(${window.location.origin})') === true) { localStorage.PPP_banned_sign = 'true'; window.location.reload(); }">屏蔽该网站</PPP-banner-button>
<PPP-banner-button onclick="if(confirm('您确定要取消此按钮吗?(在 ${window.location.origin})') === true) { if(confirm('要永久隐藏吗?(否则本次会话会隐藏)') == true) { localStorage.PPP_unbanned_sign = 'true'; } document.getElementById('fsbfsb1').type = document.getElementById('fsbfsb2').type = 'hidden'}">隐藏</PPP-banner-button>
</PPP-banner>
`;
console.log(`PPP 创作的 网页屏蔽器 已开启`);
setInterval(function() {
if(document.querySelector('PPP-banner') == null) {
let top, left;
document.body.insertAdjacentHTML("beforeend", innerHtml);
document.documentElement.ondragover = function(event) { event.preventDefault(); };
document.body.querySelector('PPP-banner-dragger').ondragstart = function(event) {
console.dir(event);
top = event.clientY - localStorage.PPP_banner_lasttop;
left = event.clientX - localStorage.PPP_banner_lastleft;
};
document.body.querySelector('PPP-banner-dragger').ondragend = function(event) {
document.querySelector('PPP-banner').style.top = (localStorage.PPP_banner_lasttop = event.clientY - top) + 'px';
document.querySelector('PPP-banner').style.left = (localStorage.PPP_banner_lastleft = event.clientX - left) + 'px';
if(localStorage.PPP_banner_lasttop < 0)
document.querySelector('PPP-banner').style.top = '0px', localStorage.PPP_banner_lasttop = 0;
if(localStorage.PPP_banner_lastleft < 0)
document.querySelector('PPP-banner').style.left = '0px', localStorage.PPP_banner_lastleft = 0;
};
}
}, 16);
}
}