安装ABP插件,访问优快云被强制跳转登录页

本文介绍了一种解决优快云网站因AdBlockPlus插件导致的强制跳转问题的方法,通过修改window.setInterval及调整页面高度,利用Tampermonkey插件实现自动执行,确保浏览体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现象

安装了AdBlock Plus插件后,访问优快云后就成了这样...


之前还是点击“阅读更多”后才开始跳转,现在直接强制跳转了,我擦...

尽管用了ABP对你优快云不太厚道,但是你也没必要这么狠吧...

我这个强迫症的受不了了!


策略

1. 抓包查找源码,看弹框何时执行


! function () {    var c, e;
    function t() {        console.log("AdBlock is not enabled")    }
    function n() {        var c, e, t;        console.log("Adblock is enabled"), c = "adblock", e = {            step: "install"        }, t = window.location.protocol + "//statistic.youkuaiyun.com/", $.get(t + c, e);        var n;
        function o(c, e) {            var t = document.createElement("div");            t.innerHTML = c;            var n = document.body.firstChild;            document.body.insertBefore(t, n), e && "function" == typeof e && e()        }

        (function (c) {            for (var e, t, n = document.cookie.split("; "), o = 0; o < n.length; o++)                if (n[o] && (e = n[o].split("="))[0] === c) {                    t = e[1];                    break                }            return t        })("UserName") || o('<div class="check-adblock-bg"> <div class="tip-box"> <a href="https://passport.youkuaiyun.com/account/login" class="close">+</a> 如要继续阅读全文,请将优快云网站加入ADP<br/>白名单或登录网站。(<span id="check-adblock-time">3</span>秒后自动跳转) <a href="https://passport.youkuaiyun.com/account/login" class="login">登录</a> </div> </div>', setInterval(function () {            var c = $("#check-adblock-time").text();            c = parseInt(c), 0 < --c ? $("#check-adblock-time").text(c) : location.href = "https://passport.youkuaiyun.com/account/login"        }, 1e3)), o('<div class="adblock"><img src="https://g.csdnimg.cn/check-adblock/1.0.0/img/monkey@2x.png"/><span>亲爱的用户,您使用了广告屏蔽软件,广告是优快云向您免费提供服务与产品的重要支持,希望您将youkuaiyun.com加入AdBlock Plus<a class="check_a" href="https://bbs.youkuaiyun.com/topics/392458005" target="_blank">白名单</a>,感谢支持!</span><em class="check_close"><svg t="1539053811268" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7199" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 438.378667L806.506667 143.893333a52.032 52.032 0 1 1 73.6 73.621334L585.621333 512l294.485334 294.485333a52.074667 52.074667 0 0 1-73.6 73.642667L512 585.621333 217.514667 880.128a52.053333 52.053333 0 1 1-73.621334-73.642667L438.378667 512 143.893333 217.514667a52.053333 52.053333 0 1 1 73.621334-73.621334L512 438.378667z" fill="#8a8a8a" p-id="7200"></path></svg></div>'), $(".check_close").length && $(".check_close").on("click", function (c) {            c.stopPropagation(), $(this).parents(".adblock").remove(), "function" == typeof window.csdn.insertcallbackBlock && window.csdn.insertcallbackBlock()        }), (n = new Date).setDate(n.getDate() + 7), document.cookie = "c_adb=1; expires=" + n.toGMTString() + "; domain=youkuaiyun.com; path=/", "function" == typeof window.csdn.insertcallbackBlock && window.csdn.insertcallbackBlock()    }    if (void 0 === window.csdn && (window.csdn = {}), c = "https://g.csdnimg.cn/check-adblock/1.1.1/css/check-adblock.css", (e = document.createElement("link")).rel = "stylesheet", e.type = "text/css", e.href = c, document.getElementsByTagName("head")[0].appendChild(e), "undefined" != typeof fuckAdBlock || "undefined" != typeof FuckAdBlock) n();    else {        var o = document.createElement("script");        o.onload = function () {            fuckAdBlock.onDetected(n), fuckAdBlock.onNotDetected(t)        }, o.onerror = function () {            n()        }, o.type = "text/javascript", o.src = "https://g.csdnimg.cn/lib/fuckadblock/3.2.1/fuckadblock.min.js", document.head.appendChild(o)    }}();
复制代码

检测步骤

  1. fuckadblock检测用户是否启用ABP,并注册两个回调(检测到启用、检测到未启用)
  2. 若检测到启用
  3. 取本地Cookie,是否存在UserName,确认用户是否登录
  4. 用户未登录,执行函数o
  5. 弹窗,并在x秒后强制跳转至登录页

2. 如何解决?

之前想通过侵入fuckadblock来解决,后来想想没啥必要,这段代码反正没啥用...  那我们就让他强制执行错误呗!怎么做最简单?里面用到了window.setInterval那我们就这样吧...

window.setInterval = null;复制代码

嘻嘻,反正看个页面这样做也不会影响其他的,对吧~顺便那个“阅读更多”也挺碍事的,那就再顺手一下

document.getElementById('article_content').style.height = '';
复制代码

嘿嘿!这样做就可以了对吧~ 

咦,那这代码啥时候执行呢?怎么执行呢?我们也不能手动开tab,手动把代码放到console执行吧!

实际上,通过Chrome插件就可以搞定!

但是,如果写个原生的Chrome插件,费时也费力~那我们可以通过第三方的脚本管理器(Chrome插件: Tampermonkey)去帮我们做这件事,上手非常简单。Tampermonkey脚本具体怎么写请参考官方文档。


// ==UserScript==
// @name         优快云
// @namespace
// @version      0.1
// @description
// @author       nannongrousong
// @match        https://blog.youkuaiyun.com/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    window.setInterval = null;
    window.onload = () => {
        document.getElementById('article_content').style.height = '';
    }
})();
复制代码


这样就完成了一个简单的脚本,保存一下以后每次打开csdn blog页面代码就会自动执行~终于可以不用强制跳转也可以看到文章全部内容啦~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值