Greasy Fork is available in English.
删除指定的广告组件 , 适用于: ✅有道云笔记网页版https://note.youdao.com/
// ==UserScript==
// @name 有道云笔记无广告
// @namespace noteyoudaonoad
// @homepage https://zhengkai.blog.csdn.net/
// @version 20250222.6
// @description 删除指定的广告组件 , 适用于: ✅有道云笔记网页版https://note.youdao.com/
// @author Moshow郑锴
// @license MIT
// @match https://note.youdao.com/web/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 公共方法:删除所有匹配选择器的元素
function removeElements(selector) {
document.querySelectorAll(selector).forEach(function(element) {
element.remove();
});
}
// 公共方法:移除所有匹配选择器的元素的特定 class
function removeClass(selector, className) {
document.querySelectorAll(selector).forEach(function(element) {
element.classList.remove(className);
});
}
// 观察DOM的变化
const observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.addedNodes.length) {
removeElements('#flexible-list-left > div:nth-child(2) > div > ad-component');
removeClass('#file-outer', 'adListTag');
removeClass('.list-bd.adList', 'adList');
removeClass('.list-bd.noItemNum.adList', 'adList');
removeClass('#file-outer.list-bd.adList', 'adList');
}
});
});
// 配置观察选项
const config = { childList: true, subtree: true };
// 开始观察body元素
observer.observe(document.body, config);
// 在DOM加载完成后执行一次函数
document.addEventListener('DOMContentLoaded', function() {
removeElements('#flexible-list-left > div:nth-child(2) > div > ad-component');
removeClass('#file-outer', 'adListTag');
removeClass('.list-bd.noItemNum.adList', 'adList');
removeClass('.list-bd.adList', 'adList');
removeClass('#file-outer.list-bd.adList', 'adList');
});
})();