在我访问的一个活跃网站上,每个页面上都会显示此 javascript 代码。
<script type="text/javascript">
(function(){var d=document;var i=d.getElementsByTagName('iframe');if(google_ad_client!=null||(window.getComputedStyle?d.defaultView.getComputedStyle(i[i.length-1],null).getPropertyValue('display'):i[i.length-1].currentStyle['display'])=='none'){
alert('Adblock detected, please consider disabling it')
}})()
</script>
有没有什么办法可以让我使用广告拦截器(或者任何其他类型的插件)来禁用该特定代码,而无需禁用所有 javascript?
答案1
您可以使用油脂猴附加组件来重写该alert
函数:
// ==UserScript==
// @name Catch JS Alert
// @namespace http://igalvez.net
// @include http://*
// @version 1
// @grant none
// @run-at document-start
// ==/UserScript==
window.alert = function(message) {
if(message == 'Adblock detected, please consider disabling it') {
console.log(message);
} else {
confirm(message);
}
}
其工作方式如下:
如果警告框的消息与“检测到 Adblock,请考虑禁用它”匹配,则将其丢弃到 JS 控制台(不会显示)。否则,将警告框显示为框confirm
。