您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
desc
// ==UserScript== // @name Torn - Hide Crimes // @namespace somenamespace // @version 0.4 // @description desc // @author tos // @match *.torn.com/crimes.php // @grant GM_addStyle // @run-at document-start // ==/UserScript== GM_addStyle(` .hide_this_crime { color: #858585; cursor: pointer; padding: 5px; } .unhide_all_crimes { color: #069; cursor: pointer; float: right; padding: 5px; margin: 10px; } `) let hidden_crimes = JSON.parse(localStorage.getItem('torn_hidden_crime')) || {} const addCrimeFilters = () => { const unhide_all = document.createElement('SPAN') unhide_all.className = 'unhide_all_crimes' unhide_all.innerText = '[show all]' unhide_all.onclick = () => { const crime_list = document.querySelector('.specials-cont') for (const li of crime_list.children) { const crime = li.querySelector('.radio-css').id if (hidden_crimes[crime]) { li.style.display = 'list-item' hidden_crimes[crime] = false localStorage.setItem('torn_hidden_crime', JSON.stringify(hidden_crimes)) } } } document.querySelector('form[name=crimes]').append(unhide_all) let crimes_ul = document.querySelector('.specials-cont') for (const li of crimes_ul.children) { const crime = li.querySelector('.radio-css').id if (hidden_crimes[crime]) li.style.display = 'none' const nerve_wrap = li.querySelector('.points') const li_hide = document.createElement('SPAN') li_hide.className = 'hide_this_crime' li_hide.innerText = '[hide]' li_hide.onclick = (e) => { e.stopImmediatePropagation() li.style.display = 'none' hidden_crimes[crime] = true localStorage.setItem('torn_hidden_crime', JSON.stringify(hidden_crimes)) } nerve_wrap.append(li_hide) } } //addCrimeFilters() const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node.className && node.className === 'specials-cont-wrap bottom-round cont-gray') addCrimeFilters() } } }); observer.observe(document, { subtree: true, childList: true })