最近几天访问网站发现Disqus忽然给我的网站投放了大量的广告,整个页面的30%都是disqus的广告,由于我是disqus的免费用户,他们的确有权投放广告,但是这广告也太夸张了。于是查看了下付费的套餐,最便宜每月11刀,如果单位换成RMB我应该直接就订阅了,现在只能昧着良心把广告删了😂。

先尝试了两种方法,方法来源于 如何在Typecho中使用disqus,并开启评论?(并移除广告)

操作前,现将disqus能关的广告都关了。

disqus-ads

方法一

在网站body的最下面添加如下JS

1
2
3
4
5
6
7
8
9
10
11
12
<script>
(function($){
setInterval(() => {
$.each($('iframe'), (arr,x) => {
let src = $(x).attr('src');
if (src && src.match(/(ads-iframe)|(disqusads)/gi)) {
$(x).remove();
}
});
}, 300);
})(jQuery);
</script>

2021年07月30日亲测已失效。

方法二

<head>标签中添加如下内容,利用css屏蔽广告

1
2
3
4
<style>
iframe[src*=ads-iframe]{display:none!important;}
div[id*=disqus][style*=margin]{display:none!important;}
</style>

2021年07月30日亲测已失效。

方法三

通过打开控制台,连续刷新,部署,打开不同的页面,发现一个规则,所有的disqus广告都是iframe标签,其中,只有评论框是带有src属性的,对于广告的iframe标签是没有src属性的,并且我确定网站里没有用到其他任何iframe标签,于是乎,参考方法一,我只需要判断iframe是否有src属性即可。

1
2
3
4
5
6
7
8
9
10
11
12
<script>
(function($){
setInterval(() => {
$.each($('iframe'), (arr,x) => {
let src = $(x).attr('src');
if (src == undefined) {
$(x).remove();
}
});
}, 300);
})(jQuery);
</script>

目前来看效果还不错,木有😍😍的广告了,也并没有影响到网站的正常使用。先这么着吧,观察使用一段时间,说不定哪天Disqus又搞新的幺蛾子。