Greasy Fork is available in English.

Disable specific sites

A script to ban a user from opening some specific sites

// ==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()
 
 
})();