您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
屏蔽含有\rule(latex支持的一种代码,会产生大小几乎不受限的长方形页面元素)的危险消息。你也可以自定义屏蔽内容(使用正则表达式)。现在还可以屏蔽敏感词并用【已屏蔽】代替。
当前为
// ==UserScript== // @name 【聊天室危险消息屏蔽】 // @namespace http://tampermonkey.net/ // @version 1.2 // @description 屏蔽含有\rule(latex支持的一种代码,会产生大小几乎不受限的长方形页面元素)的危险消息。你也可以自定义屏蔽内容(使用正则表达式)。现在还可以屏蔽敏感词并用【已屏蔽】代替。 // @author firetree // @match https://crosst.chat/?* // @match https://hack.chat/?* // @match https://xq.kzw.ink/?* // @match https://chat.thz.cool/?* // @icon none // @grant GM_setValue // @grant GM_getValue // @license WTFPL // ==/UserScript== (function() { 'use strict'; function filter_msg() {//遍历所有消息并进行屏蔽 var msg_divs var regex_str = GM_getValue('chatroom_regex') var regex = new RegExp(regex_str) msg_divs = Array.from(document.querySelectorAll('div.message'))//获取class为msg的div元素 if (msg_divs != undefined && msg_divs != []) { for (var i=0;i<msg_divs.length;i++) { var div,msg div = msg_divs[i] msg = div.innerHTML if (regex.test(msg) && div.style.display != 'none')//屏蔽的内容为rule,已经屏蔽过的不再次处理 { div.style.display = 'none' console.log('[危险消息屏蔽] 已屏蔽危险消息:')//由于rule刷屏常常频率极高,因此不适合仅仅改变文本,只能将元素完全隐藏,在控制台将原文留档。 console.log(div) } } } } function set_regex() { console.log() let regex_str = prompt('输入正则表达式(不含左右斜杠):',GM_getValue('chatroom_regex'))//这里是prompt的输入,不需要转义,输入两个斜杠就是两个斜杠 GM_setValue('chatroom_regex',regex_str) } var settings = document.getElementById('sidebar-content') var p = document.createElement('p') var btn = document.createElement('button') btn.onclick = set_regex var text = document.createTextNode('设置危险消息正则表达式') btn.appendChild(text) p.appendChild(btn) settings.innerHTML += '<hr><h4>危险消息屏蔽设置</h4>' settings.appendChild(p) // if (!GM_getValue('chatroom_regex')) { let a = GM_getValue('chatroom_regex') let regex_str = '\\rule'.replace(/\\/g,'\\\\')//这里需要使得双引号里的两个斜杠变成的字面量里的一个斜杠再变成两个斜杠,以在正则表达式里匹配一个斜杠。 GM_setValue('chatroom_regex',regex_str) console.log(`发现正则表达式为缺失值${a},已设为默认值${regex_str}`) } var observer = new MutationObserver(filter_msg);//设置聊天室内有新消息后所执行的函数为filter_msg const messages = document.getElementById('messages')//获取messages元素 const config = {childList: true}//配置观察器观察子节点变化 observer.observe(messages,config)//开始观察 })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址