禁止用户打开某些网页
// ==UserScript==
// @name Disable specific sites
// @name:zh-CN 禁用网页
// @name:zh-TW 禁用網頁
// @namespace http://tampermonkey.net/
// @version 0.3
// @description A script to ban a user from opening some specific sites
// @description:zh-CN 禁止用户打开某些网页
// @description:zh-TW 禁止用戶打開某些網頁
// @author You
// @match *
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// @license MIT
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
var disableStatus = false
function init(){
reloadDisableStatus()
stopLoadingPageIfInDisableList()
}
function showDisableGmBtns(){
let menu = GM_registerMenuCommand("Disable This Site", ()=>{
toggleDisableStatus()
document.body.innerHTML = ""
GM_unregisterMenuCommand(menu)
})
}
function showEnableGmBtns(){
let menu = GM_registerMenuCommand("Enable This Site", ()=>{
toggleDisableStatus()
GM_unregisterMenuCommand(menu)
location.reload()
})
}
/* function isInDisableList(){
return localStorage.DisableSpecificSites?true:false
} */
function reloadDisableStatus(){
disableStatus = localStorage.DisableSpecificSites=="true"?true:false
}
function stopLoadingPageIfInDisableList(){
if(disableStatus == true){
//console.log(disableStatus)
//showErrorPage()
// window.stop()
var intv = setInterval(()=>{
document.body.remove()
if (document.body == void 0) clearInterval(intv)
}, 10)
showEnableGmBtns()
}else {
showDisableGmBtns()
}
}
function toggleDisableStatus(){
if(disableStatus){
disableStatus = false
localStorage.DisableSpecificSites = false
showDisableGmBtns()
}
else{
disableStatus = true
localStorage.DisableSpecificSites = true
showEnableGmBtns()
}
}
function showErrorPage(){
const HTMLcode = `
<div style="text-align: center; margin-top: 30%">
<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" fill="currentColor" class="bi bi-slash-circle" viewBox="0 0 16 16">
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
<path d="M11.354 4.646a.5.5 0 0 0-.708 0l-6 6a.5.5 0 0 0 .708.708l6-6a.5.5 0 0 0 0-.708z"/>
</svg>
<div style='margin-top: 20px; font-size: 24px;font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"'>
This Webpage is disabled.
</div>
</div>
`
document.write(HTMLcode)
}
init()
})();