crimx / ext-saladict

🥗 All-in-one professional pop-up dictionary and page translator which supports multiple search modes, page translations, new word notebook and PDF selection searching.
https://saladict.crimx.com/
MIT License
12.08k stars 740 forks source link

干扰广告拦截扩展的css拦截规则 #1787

Closed Heporis closed 2 years ago

Heporis commented 2 years ago

设备信息

描述问题

划词会干扰广告拦截扩展的css拦截规则

复现步骤

1.安装广告拦截扩展,比如ublock origin,启用CHN: AdGuard Chinese (中文)这个规则(默认已启用) 2.打开远景论坛,选中一段文本,原本已经被屏蔽的占位符就会出现,取消选中则消失 3.关闭沙拉,则第二步中的情况不会出现

期待的正常行为

希望能不影响广告过滤插件的css过滤规则

截图

GIF 2022-7-6 11-21-25

额外信息

具体的css拦截规则是这一条: bbs.pcbeta.com#?##toptb ~ #wp > div[class]:matches-css(height : /170px/)

crimx commented 2 years ago

不太可能由沙拉查词导致的。我这边 ublock 是没有隐藏,你看看有没有其它插件在控制这个样式?

image

crimx commented 2 years ago

开启沙拉查词选中的效果

image

Heporis commented 2 years ago

不太可能由沙拉查词导致的。我这边 ublock 是没有隐藏,你看看有没有其它插件在控制这个样式?

我开无痕模式,只加载了这两个插件,最新的规则肯定是屏蔽了这个空白广告位的,我前几天刚反馈给adguard的,你更新一下规则试试。我刚才又给他们反馈了一下,看看能不能换一种不和沙拉冲突的css拦截方式。看看你们哪边好解决吧🤣我估计他们那边换一种拦截规则简单一点,先看他们那边的答复吧。这个 image

crimx commented 2 years ago

更新之后确实复现了。原理是这样的,ublock 规则依赖了这个广告位元素的两个属性,而这个页面监听了 <html> 如果插入了新元素,就会把这个广告位的一个属性删掉了,所以导致 ublock 规则匹配不上。为了兼容性沙拉查词的元素都是在 <html> 下插入的,所以触发了这个现象,这个目前改变不了。ublock 规则改为依赖 #aIHJSMBf 屏蔽应该就行。

Heporis commented 2 years ago

更新之后确实复现了。原理是这样的,ublock 规则依赖了这个广告位元素的两个属性,而这个页面监听了 <html> 如果插入了新元素,就会把这个广告位的一个属性删掉了,所以导致 ublock 规则匹配不上。为了兼容性沙拉查词的元素都是在 <html> 下插入的,所以触发了这个现象,这个目前改变不了。ublock 规则改为依赖 #aIHJSMBf 屏蔽应该就行。

你能去adguard那边用英语解释一下这个原理吗?上面有issue的链接。我不太会解释,那边的人说搞不懂出什么问题😂