話說我最近在 Facebook 上看到這一篇很有趣的文章,講述如何檢查出 Adblock 然後對該使用者彈出視窗來禁止他繼續閱讀:
https://blog.reh.tw/archives/2273
先不論這方法是不是真的會讓讀者留久一點還是氣得直接按右上角的叉叉,對我這種習慣了網頁開發的野生技術程序員來說這簡直就是像彈出一張「戰帖」一樣。
好,我就來應戰吧!
對於要解決類似這種的 Adblock Blocker 其實很簡單,你只需要把阻擋你的東西移除掉,把 body 的 css 改一點點(通常是移除 overflow: hidden)就能夠繼續看的了。所以首先,我們要把找到擋著我們的東西。
我這裡使用的是 Firefox,你只要對擋著你的東西按右鍵 –> Inspect Element
之後到程式碼裡面找到代表這個部分的 div 的 id 或 class name
然後在 GreezeMonkey (Firefox 插件)開一個新的 script,引用 jQuery 跟 include 你需要阻擋 阻擋 Adblock 的網站,然後把全部相關的 id 跟 class 都 remove 掉就可以了。以下是一個非常簡單的例子:
// ==UserScript==
// @name REH TW Block AD Blocker
// @version 1
// @grant none
// @include https://blog.reh.tw/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// ==/UserScript==
console.log("Removing Adblocker");
$("body").removeClass("modal-open");
$(document).find(".modal-backdrop fade show").remove();
$("#adBlockMsg").remove();
然後我們重新載入網頁: 耶!阻擋 Adblock 的東西被我們阻擋了!