我在浏览器 (Firefox) 上使用 Ghostery 和 AdBlock Edge。有些网站会要求您一次将它们列入白名单;我只是忽略了这一点。但有些网站(具体示例:当您是想要向房东发送消息的注册用户时,directwonen.nl)会在每个页面上弹出一个对话框,一遍又一遍地要求我禁用广告拦截...
显然,我不想关闭广告拦截。这不仅令人讨厌,而且在政治上也是不可接受的——如果某些网站可以通过在你不看广告时骚扰你来让你看广告,那么越来越多的网站会采用这种方法。所以——广告拦截器继续打开。但是,有了这个限制:
- 我该怎么做才能克服这种机制?或者,
- 我怎样才能让网站认为我已加载其广告但实际上并未加载?
对于我提到的网站的具体情况,这是他们的代码:
var tryMessage = function() {
setTimeout(function() {
if (!document.getElementsByClassName) return;
var ads = document.getElementsByClassName('ads_banner'),
ad = ads[ads.length - 1];
if (!ad
|| ad.innerHTML.length == 0
|| ad.clientHeight === 0) {
alert(message);
} else {
ad.style.display = 'none';
}
}, 2000);
};
因此我猜想一个强力的解决方案就是禁用该网站的警报。
答案1
只是为了解决警报
安装油脂猴并创建此用户脚本:
// ==UserScript== // @name Catch JS Alert // @namespace https://directwonen.nl // @include https://* // @version 1 // @grant none // @run-at document-start // ==/UserScript== window.alert = function(message) { console.log(message); }
对于解决其他方法
- 如果您需要使用的 URL 被过滤器阻止,则需要添加过滤器例外。
- 如果网站有基于 javascript 的解决方案。例如,“转到广告网址,如果失败,则删除该页面。”那么你可以直接修改 javascript。使用此解决方案修改不需要的脚本标签。或者您可以编辑该解决方案,以便它执行正则表达式替换任何不需要的内容。