您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name 屏蔽知乎私信提醒 // @namespace http://tampermonkey.net/ // @version 1.2 // @description try to take over the world! // @author You // @match http://*.zhihu.com/* // @match https://*.zhihu.com/* // @grant none // @run-at document-end // ==/UserScript== (function () { var titleRegexp = /^\(.*?\)/; var documentTitle = document.querySelector('head > title'); var messageDom = document.querySelector('.AppHeader'); var observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { console.log('documentTitle changed:', mutation.target.textContent); try { setTimeout(function () { if (titleRegexp.test(mutation.target.textContent)) { document.title = document.title.replace(titleRegexp, ''); var badgeDom = messageDom.querySelector('.AppHeader-messages div'); badgeDom.style.display = 'none'; } }, 50); } catch (error) { console.log('[debug]: error', error); } }); }); observer.observe(documentTitle, { subtree: true, characterData: true, childList: true, }); var observer2 = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { console.log('messageDom changed:', mutation.target); try { var isMessageReceived = mutation.target.classList && [...mutation.target.classList].indexOf('AppHeader-messages') >= 0; if (isMessageReceived) { setTimeout(() => { var badgeDom = messageDom.querySelector('.AppHeader-messages div'); badgeDom.style.display = 'none'; document.title = document.title.replace(titleRegexp, ''); }, 50); } } catch (error) { console.log('[debug]: error', error); } }); }); observer2.observe(messageDom, { subtree: true, characterData: true, childList: true, }); })();