V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
XuanYuan
V2EX  ›  程序员

关于检测元素高度来屏蔽 Adblock 的脚本,怎么破?

  •  
  •   XuanYuan · 2015-10-10 12:37:43 +08:00 · 5369 次点击
    这是一个创建于 3367 天前的主题,其中的信息可能已经有所发展或是发生改变。

    页面最后有这么一段:

    function check(){
        var h=document.getElementById("广告").clientHeight;
        if(h!=0){
            document.getElementById("ID").innerHTML="验证码"
        }
    }
    
    24 条回复    2016-05-03 11:51:17 +08:00
    oott123
        1
    oott123  
       2015-10-10 13:04:29 +08:00 via Android
    #广告 { opacity: 0; }
    XuanYuan
        2
    XuanYuan  
    OP
       2015-10-10 13:24:19 +08:00
    @oott123 我的意思是,我想继续用 Adblock 来屏蔽页面上的广告,但是还需要显示验证码,这个需求用 Adblock 是不是能实现,如果不能的话,有什么其他的办法?
    msg7086
        3
    msg7086  
       2015-10-10 13:26:46 +08:00
    @XuanYuan 让 adblock 去修 bug 吧。
    dqh3000
        4
    dqh3000  
       2015-10-10 13:38:50 +08:00
    greasemonkey 之类的

    var d = document.createElement("div");
    d.id = "广告";
    d.style.height = "1px";
    document.body.appendChild(d);
    check();
    bismarck
        5
    bismarck  
       2015-10-10 13:42:32 +08:00   ❤️ 1
    既然要使用别人的服务,就请不要屏蔽别人收入的来源。
    XuanYuan
        6
    XuanYuan  
    OP
       2015-10-10 14:24:36 +08:00
    @msg7086 这个应该算 feature 不算 bug 吧 :D 我去提一下试试。
    msg7086
        7
    msg7086  
       2015-10-10 15:03:20 +08:00
    @bismarck
    @XuanYuan
    是的,过分屏蔽广告行为可类比盗版。
    XuanYuan
        8
    XuanYuan  
    OP
       2015-10-10 16:20:13 +08:00
    @msg7086 严重支持“过分”二字,当 ads 让你连页面都拖不动、打字也卡的时候,除了处理广告,我想不到更合理的办法——当然,如果有人回复“换电脑”的话,我也无话可说。
    honeycomb
        9
    honeycomb  
       2015-10-10 16:34:35 +08:00
    @bismarck
    这么说是不对的
    既然别人要在不是别人的设备 /浏览器上提供网页服务,就要有自己的代码被修改的意识

    @msg7086 同样的,这样的想法也是荒谬的
    因为不存在”过分地屏蔽广告“这种情形,因为屏蔽广告的权利是无法剥夺的,只存在自行放弃的情形
    只要行为没有蔓延到服务提供者的服务器上(比如黑掉服务提供者的广告服务器)

    正解是 @dqh3000 给出的方案
    Adblock plus/uBlock origin 这样的说到底只是“通用内容拦截器”,而不是什么都能修改的 hooker
    20140930
        10
    20140930  
       2015-10-10 16:49:13 +08:00 via Android   ❤️ 1
    9 楼的我顶你啊!想想两三年前那有怎么多的广告过滤程序?为何近两年就如同春笋般冒出来?还不是有些人竭泽而渔的做法导致的?我觉得吧网页广告上很多诱导用户下载的流氓软件是继病毒木马之后危害最大的。。。
    msg7086
        11
    msg7086  
       2015-10-11 00:15:35 +08:00   ❤️ 1
    @honeycomb 欧摸奚落已
    原来享受服务的时候也要支付费用这个概念是很荒谬的呀
    毕竟在中国,拒绝付费的权利是无法剥夺的,只存在自行放弃的情形。
    平时付钱买东西都是自行放弃了拒绝付费权了哦。
    kjreen
        12
    kjreen  
       2015-10-11 03:17:48 +08:00
    @msg7086 有必要这么上纲上线吗。。
    honeycomb
        13
    honeycomb  
       2015-10-11 06:49:10 +08:00 via Android
    @msg7086 我来告诉你为什么:

    浏览器上显示的内容是浏览器渲染出来的,因此你决定浏览器如何渲染页面( greaswmonkey ),你决定浏览器可以下载那些内容 (adblock plus)。

    所以无关付费,而是权利义务的问题。你的东西首先你说了算,你放不放弃同样也是你的事情。

    另一方面有关对错,目前广告代码普遍做的用户追踪是否合理是有争议的,所以屏蔽广告是道德的。

    你的谬误在于,付费这个事情是先于服务的,或者说这两者是原子的,事务的。而广告不是,它的传统形式是和内容并列出现的,这就是为什么路上的广告牌你总是可以视而不见,就算见到了也可以自欺欺人说没看到的道理。

    所以,你拒绝付费,提供者可以不提供服务;你拒绝看广告,优酷可以不提供视频,可是优酷做不到,因为很容易打击这种不当风气。

    这就是要做原生广告的目的所在,让广告成为内容,便能让消费者更容易接受。
    wdhwg001
        14
    wdhwg001  
       2015-10-11 11:04:49 +08:00 via iPhone
    @honeycomb 是呀是呀,原来不付钱是如此正当的呀,正当到了反 adblock 脚本都要被再做处理回避呀。
    所谓“既然做了页面就要有被篡改的觉悟”真是有趣,知识产权里有禁止反编译篡改先不提,这个逻辑和“穿这么暴露就是为了让人强奸”有区别吗 www
    wdhwg001
        15
    wdhwg001  
       2015-10-11 11:11:04 +08:00 via iPhone
    @honeycomb 你去一个商店,拿了东西就走。
    店主跑来要钱,你和他说:你摆出来的商品,我拿走了,我拒绝付钱,你可以要回去啊?
    然后店主伸手去抢,被你一巴掌打翻在地,你说:我看到了你的东西,这是我眼睛里的,我说了算,你要我付钱可以降价啊?或者你再来抢抢试试?
    honeycomb
        16
    honeycomb  
       2015-10-11 11:41:08 +08:00
    @wdhwg001

    知识产权里有禁止反编译篡改:
    显然这个和让浏览器不下载某个东西,不运行某个东西无关
    你想想是不是,想不通也没关系,反正还是你的事情。

    这个逻辑和“穿这么暴露就是为了让人强奸”有区别吗?
    当然有区别:
    穿衣服的规则是,无论你穿不穿别人都不能扰
    网页的区别是,无论“穿不穿”别人都能不看
    规则没有弄清楚,就会犯此类错误

    至于这种谬误:
    “你摆出来的商品,我拿走了,我拒绝付钱,你可以要回去啊”
    为什么广告不适用呢:

    所以换成上述语境,是
    “你拿出某个的东西硬塞给我,我拒绝收下,你最后相当于把这个东西丢了一地,因为没有人接收”

    因为你没有弄清楚,你举例的实物商品是用来换钱的,而广告是流量提供方想让客户看的信息,这个意义上它不是商品(相对的,在 adsense 上拍卖的广告才是商品)。
    honeycomb
        17
    honeycomb  
       2015-10-11 11:43:34 +08:00
    @wdhwg001 你应该看一下 ublock 的 Philosophy ,它从隐私的角度解释了为什么过滤广告是道德的:


    "That said, it's important to note that using a blocker is NOT theft. Don't fall for this creepy idea. The ultimate logical consequence of blocking = theft is the criminalisation of the inalienable right to privacy.

    Ads, "unintrusive" or not, are just the visible portions of privacy-invading apparatus entering your browser when you visit most sites nowadays. uBlock₀'s main goal is to help users neutralize such privacy-invading apparatus — in a way that welcomes those users who don't wish to use more technical, involved means (such as µMatrix)."


    https://github.com/gorhill/uBlock
    bismarck
        18
    bismarck  
       2015-10-15 20:39:17 +08:00
    @honeycomb 很简单,网站都是需要盈利去维持运转的,如果大部分人都屏蔽广告,毫无疑问,那些用心做站,写文章,整合资源的人便会少很多。长此以往,互联网的优质资源数量将下降。对大批网站主来说,投放广告是最实际的货币化途径。

    立场不同,观点可以不同。
    bismarck
        19
    bismarck  
       2015-10-15 20:40:14 +08:00
    @XuanYuan 所以,我觉得应该搞个广告评级提供商。像 V2 这样的广告 banner ,我想没人会觉得烦恼。
    honeycomb
        20
    honeycomb  
       2015-10-15 21:28:59 +08:00
    @bismarck

    “如果大部分人都屏蔽广告,毫无疑问,那些用心做站,写文章,整合资源的人便会少很多。长此以往,互联网的优质资源数量将下降。”

    这样的结果是好事
    bismarck
        21
    bismarck  
       2015-10-19 11:43:39 +08:00
    @honeycomb 那就没什么好辩了。已经背离了互联网的初衷了。没有利益驱动,就不可能有各种内容的繁盛,你以后所见皆为噪声。您继续走您的合理化占用他人劳动之路。
    honeycomb
        22
    honeycomb  
       2015-10-19 14:11:50 +08:00
    @bismarck
    这件事情不会发生
    广告是无法,不能,不可以且做不到消灭的
    只要有人的地方,就会有广告
    jarlyyn
        23
    jarlyyn  
       2016-05-03 11:49:57 +08:00 via Android
    @honeycomb

    所以数字音乐就应该被 copy ,对吧?
    jarlyyn
        24
    jarlyyn  
       2016-05-03 11:51:17 +08:00 via Android
    @honeycomb

    小偷辩解自己劫富济贫也能信?呵呵。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:17 · PVG 00:17 · LAX 08:17 · JFK 11:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.