您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
nimingban threads block
- // ==UserScript==
- // @name nmbb
- // @namespace fishcan
- // @description nimingban threads block
- // @include https://h.nimingban.com/*
- // @version 1.2
- // @grant GM_getValue
- // @grant GM_setValue
- // ==/UserScript==
- var blist = [];
- blist = GM_getValue('blist',[]);
- /************************
- *截断超过长度的屏蔽列表
- *************************/
- if(blist.length>100){
- blist=blist.slice(0,100);
- }
- var allThreads = document.getElementsByClassName("h-threads-item");
- for(var i = 0; i < allThreads.length; i++){
- var thisId = allThreads[i].getAttribute("data-threads-id");
- var thisNode = allThreads[i];
- var node = document.createElement("span");
- node.setAttribute("class","h-threads-info-report-btn");
- node.innerHTML = "[<a>屏蔽串</a>]";
- node.firstElementChild.setAttribute("id",thisId);
- var now = thisNode.firstElementChild.firstElementChild
- while(now != null){
- if(now.className == "h-threads-info"){
- now.appendChild(node);
- break;
- }else{now = now.nextElementSibling;}
- }
- document.getElementById(thisId).addEventListener('click', addBlock, true);
- }
- function removeThreads(){
- for(var i = 0; i < allThreads.length; i++){
- var thisId = allThreads[i].getAttribute("data-threads-id");
- var thisNode = allThreads[i];
- var thisIndex = blist.indexOf(thisId)
- if(thisIndex>-1){
- // 移除串内容改为替换为撤销按钮
- while(thisNode.hasChildNodes()){
- thisNode.removeChild(thisNode.lastChild)
- }
- var node = document.createElement("span");
- node.setAttribute("class","h-threads-info-reply-btn");
- node.innerHTML = "[<a>撤销屏蔽</a>]";
- node.firstElementChild.setAttribute("id",thisId);
- thisNode.appendChild(node)
- document.getElementById(thisId).addEventListener('click', cancelBlock, true)
- // 将被使用到的规则移到前面
- blist.splice(thisIndex,1);
- blist.unshift(thisId);
- }
- }
- GM_setValue('blist',blist)
- }
- function addBlock(e){
- e.stopPropagation();
- var thisId=this.getAttribute("id");
- blist.push(thisId);
- GM_setValue('blist',blist)
- removeThreads();
- }
- function cancelBlock(e){
- e.stopPropagation();
- var thisId = this.getAttribute("id");
- var thisIndex = blist.indexOf(thisId);
- if(thisIndex>-1){
- blist.splice(thisIndex,1)
- GM_setValue('blist',blist)
- }
- location.reload();
- }
- removeThreads()