您需要先安装一个扩展,例如 篡改猴、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 })