列表关键字屏蔽
// ==UserScript==
// @name 列表关键字屏蔽
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.1
// @description 根据列表中的关键字去屏蔽掉那一项,按理说是可以通用的
// @author You
// @match *://*/*
// @require https://scriptcat.org/lib/513/1.2.0/ElementGetter.js
// @grant unsafeWindow
// ==/UserScript==
const keywords = ['三相之力'];
const $ = new ElementGetter();
function isContainAttr(el1, el2) {
const at1 = Object.values(el1.attributes);
for (const key in at1) {
if (!el2.attributes[key]) {
return false;
}
// 一些特殊属性的判断
switch (el1.attributes[key].name) {
case "class":
if (el1.attributes[key].value !== el2.attributes[key].value) {
return false
}
}
}
return true;
}
// 判断两个元素属性是否相等
function isEqual(el1, el2) {
return isContainAttr(el1, el2) && isContainAttr(el2, el1);
}
function checkList(el) {
if (!el) {
return undefined;
}
if (el.nextElementSibling && isEqual(el, el.nextElementSibling)) {
return el;
}
else if (el.previousElementSibling && isEqual(el, el.previousElementSibling)) {
return el;
}
return checkList(el.parentElement);
}
$.each('a', document, a => {
// 判断关键字
for (let index in keywords) {
if (a.innerHTML.indexOf(keywords[index]) === -1) {
continue;
}
// 向上查询列表并删除此item
const item = checkList(a);
if (item) {
item.remove();
}
};
});