V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
makelove
V2EX  ›  浏览器

浏览器的 AdBlock 坑死我了

  •  
  •   makelove · 192 天前 · 5668 次点击
    这是一个创建于 192 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近一直在写一个 WebApp,在手机上测试时 Chrome/Firefox 都没问题,但在一些国产浏览器比如夸克之类上面总会出奇怪的部件消失或页面空白问题,比如一个好好的按钮就特么离奇地没了。因为面向技术群体想必国产浏览器用户不多也就没细究直接打算放弃这些用户,同时心里对国产浏览印象更差了:好好的别人核心拿过来就就算了还魔改得面目全非。。。

    因为是果黑所以没买 Mac,但又要调试下 webkit 页面,所以只能用系统自带的 Web 浏览器了(我是 GNOME 用户,自带浏览器用的 webkit 内核)。 在解决了一堆 webkit bug 后,发现部件离奇消失的 BUG 竟然又来了,我特么直接吐了果然是三流内核,不过还好现在不在手机上,这里有自带的开发者工具,在仔细研究了后发现:这个浏览器默认启用了 AdBlock,我把它的 AdBlock 列表导出来一看,好家伙,3584 行!这个 CSS 文件会直接用在每个页面上,所有匹配的类直接就消失。

    文件内容大概这样:

    .ad-box,
    .b_ad,
    .ob-hover,
    .dfp_unit,
    ... {
    display: none !important;
    }
    

    我用的是 CSS in JS 方案,类名是随机生成的 js-开头的类,然后我的类 .js-ad 直接就被浏览器干掉了!! 这个列表应该是个通用列表,所有带 AdBlock 的应该都是类似路子,类名里千万不要有 ad 这二个字母。 估计国产浏览器也是因为这个,真是错怪它们了(并没有)。

    19 条回复    2021-12-27 18:12:43 +08:00
    Cooky
        1
    Cooky  
       192 天前   ❤️ 2
    adblock 越来越不好用了,现在都用 ublock origin
    makelove
        2
    makelove  
    OP
       192 天前
    @Cooky 我不用这些,估计都差不多路子吧,用海量类来消除广告(这么搞真的不会影响性能和电池吗
    avrillavigne
        3
    avrillavigne  
       192 天前
    不会吧 不会吧 开发居然不会装广告屏蔽的 狗头.gif
    Ga2en
        4
    Ga2en  
       192 天前
    @makelove 广告更消耗电池,文字广告我是不反对的,但是现在还有谁在用,都是轮播外加闪瞎眼的信息流
    xxb
        5
    xxb  
       192 天前 via iPhone
    10 年前我还是网页重构时就这样了,class 必须避开 ad 字样,这个坑竟然如此长寿
    rabbbit
        6
    rabbbit  
       192 天前
    夸克用的是什么内核,是 UC 吗?网上搜了一圈没找到.
    注意到夸克和 UC 有很多相同的 BUG, 例如忽略 pushState,还有楼主提到的不显示带 ad 的标签(好像就只有这俩会干这事).
    4ark
        7
    4ark  
       192 天前 via iPhone
    在特定网站不运行就好了
    makelove
        8
    makelove  
    OP
       192 天前
    @Ga2en
    @avrillavigne 可能是我不上广告多的网站,现在广告多闪瞎眼的网站也不多吧,象 v2 这样的广告我是可以忍的
    rabbbit
        9
    rabbbit  
       192 天前
    搜了一下夸克内核
    2.4.0.983 Blink 内核
    2.4.0.984 U4 内核
    然后费下载了个试了下(官网下载链接让火狐给屏蔽了打开直接报红...)
    5.4.9.201 基于 Quarkium 内核 (魔改 chromium ?)

    内核换来换去,还好不用兼容这个浏览器.
    fs418082760
        10
    fs418082760  
       192 天前   ❤️ 1
    @Cooky 后来转 adguardhome 了
    Mitt
        11
    Mitt  
       192 天前 via iPhone
    不仅如此 他们默认启用一个屏蔽挖矿的规则,这本身没什么,但这个规则直接匹配顶级域,把区块链常用的顶级域全加进去了,然后就一大堆网站被拦截了,而且反馈了他们也丝毫没有删的意愿,不能理解
    512357301
        12
    512357301  
       192 天前 via Android   ❤️ 1
    这种对开发来说算常识吧,我在手动屏蔽一些广告的时候,看到广告的类名带 ad ,那我真是感谢开发者八辈祖宗,太省事了
    superfatboy
        13
    superfatboy  
       192 天前
    国产浏览器都这个揍性,一般尽量避开“ad”这个词
    dbpe
        14
    dbpe  
       192 天前
    @xxb ad ads adv...哈哈哈,之前都有网址故意取名 ad....防被过滤广告
    cocolate
        15
    cocolate  
       192 天前
    我用的 adguard
    在网关传输层直接滤掉广告的包比较好
    现在手写类名已经式微了,哪天广告也用上生成器,元素过滤怕是就废了
    peasant
        16
    peasant  
       192 天前
    这问题我几年前就遇到了,从那以后写样式名跟文件名都避免出现 ad
    lockiee
        17
    lockiee  
       192 天前
    后台的一个广告管理列表的接口因为 url 带单词 advertisement 被拦截掉~ uBlock Origin 亦是如此
    hidder
        18
    hidder  
       191 天前
    @rabbbit 夸克和 uc 都是同一个研发团队在干
    auchan
        19
    auchan  
       191 天前
    之前也遇到过一次
    所以一般都不把类名去 ad 这种太敏感的
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3293 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:03 · PVG 13:03 · LAX 22:03 · JFK 01:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.