如何使用Greasemonkey编写脚本屏蔽Etsy网站的推广广告
Etsy推广广告屏蔽脚本修复方案
原脚本失效核心原因
- 选择器语法错误:多类名匹配规则错误,属性前缀匹配的通配符使用不符合规范,原选择器无法定位到目标广告元素。
- 依赖加载风险:原脚本引用的jQuery使用http协议,会被Etsy的https站点的混合内容安全策略拦截,导致依赖加载失败,脚本无法运行。
- 未覆盖动态加载内容:仅在页面初始化时执行一次隐藏逻辑,无法处理滚动时异步加载的新增广告元素。
优化后可用脚本
直接通过样式规则实现屏蔽,无需引入jQuery,且自动覆盖所有动态加载的广告元素:
// ==UserScript== // @name Etsy Ad blocker // @description 屏蔽Etsy平台搜索页推广广告,避免干扰正常商品浏览 // @include https://*.etsy.com/* // @grant GM_addStyle // ==/UserScript== GM_addStyle(` /* 匹配class以指定前缀开头的广告卡片,强制隐藏 */ div[class^="js-merch-stash-check-listing v2-listing-card"] { display: none !important; } `);
脚本说明
- 去掉了冗余的jQuery依赖,避免混合内容加载报错问题
- 采用CSS属性前缀选择器
[class^="xxx"],精准匹配你描述的class始终以指定字符串开头的广告元素 - 样式规则会自动应用到所有页面新增元素,无需额外监听滚动或动态加载事件,性能更高
内容的提问来源于stack exchange,提问作者vonronge
相关产品推荐
相关产品推荐

