反反广告插件简易实现以及诡诈关

2018-12-01 约 2511 字 预计阅读 6 分钟

反反广告插件?

是的,标题没有打错。

IT man的写法应该加个括号,反(反广告插件)。

昨天提到了广告,多年以前对广告很感兴趣,看过好些部经典的写广告书籍,如《影响力》、《百万美元信》等,前几个月到美帝一游,看到路边的招牌,也感觉是个广告之国。

广告对市场经济高速发展起到了一定的作用。不过任何事物都一体两面,互联网的高速发展也令浏览时经常遇到大量的低俗广告,故此反广告插件也应运而生。

反广告插件

反广告插件是针对Google Chrome,Apple Safari, Firefox,Opera和Microsoft Edge等网络浏览器的内容过滤和广告拦截扩展程序。

安装了以后,确实像至尊宝一样感觉“整个世界清净了”,不过很多正常的广告也因此一起被屏蔽,这下很多大网站不干了,就弄了反反广告插件,比如福布斯、纽约时报等等网站,都有检测反广告插件的代码,有的比较粗暴一点,要么看广告,要么就离开,有的稍微温和点,给用户选择权。

大多数人不是IT man,故此又有一堆反反广告插件代码网站应运而生,反正也算是个热闹。

目前我这点业余0.5级水平足以搞定这个反反广告插件,刚才就做了一个,准备发布到Hugo W3 Simple里供人选择。

反反广告插件的实现

反广告插件是用javascript编的,比较粗暴,碰到疑似ads的元素都删除掉。这样我们做一个假的广告条

<div id="wrapads">
    <div class="adBanner">
     
    </div>
</div>

给这个假广告条做一个css

.adBanner {
    
    height: 1px;
    width: 1px;
}

这样在页面里就有一个大小为1px的广告条,反广告插件可不会管里面有啥内容,看到是adBanner就把它移除了。但它的上一级 wrapads还在那里,不增不减,不垢不净

所以我们用javascript来判断wrapads的高度,如果大于0说明没有反广告插件,如果等于0,则有。

如果有反广告插件,则弹出提醒,我简单的弄了个全屏提醒,背景虚化,css如下

.allowads-overlay {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 2;
    top: 0;
    left: 0;
    background-color: rgb(255,255,255);
    background-color: rgba(255,255,255, 0.9);
    overflow-x: hidden;
    transition: 0.5s;
}

.allowads-overlay-content {
    position: relative;
    top: 25%;
    width: 61.8%;
    text-align: center;
    margin-top: 30px;
    margin-left:auto;
    margin-right:auto;
    
}

在网页上把提醒内容写上

<div id="allowads" class="allowads-overlay">
  
  <div class="allowads-overlay-content">
  <div class="w3-panel w3-pink w3-large">
  

   <p> We notice you're using an adblocker.  If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!</p>
   
   <div class="w3-btn w3-green"  onclick="closeOverlay()">I've whitelisted your website.</div><br>
  <div class="w3-button"  onclick="closeOverlay()">Not now</div>
  </div>
</div>
</div>

这里给用户两个选择。但处理代码是一样的,用户如果已经白名单本网站,到下一个页面就能正常的显示广告,也不会弹出这样的提醒窗口了。

何时触发这个窗口呢,这个可以根据浏览时间,或者用户滑屏了就触发,我这里写的是滑屏触发。根据自己帖子的长短设置滑屏位置到2000px时,触发一个提醒窗口。

javascript代码如下:

<script>
function closeOverlay() {
  document.getElementById("allowads").style.width = "0%";
  document.getElementById("wrapads").style.height="1px";
}

function detectads() {
var h = document.getElementById("wrapads").clientHeight;

if (h==0){ document.getElementById("allowads").style.width = "100%";
}
}
window.onscroll = function() {scrollFunction()};

function scrollFunction() {

if (document.body.scrollTop > 2000 || document.documentElement.scrollTop > 2000) {
    detectads();
} 
}
</script>

如此这般,反反广告插件就实现了。如果你装了反广告插件,可以访问本站的一个英文页面滑屏到页面中途看效果。

我网站的中文页面没有任何广告,所以也没有开启这个反反广告插件。


通关文之诡诈关

易曰:“ 盥 而不荐。”
诗曰:“神之格思,不可度思,矧可射思。”
玉枢经曰:“以诚而入。”
参同契曰:“孝子用心,感动皇极。”
上阳子曰:“天或虽违,当以财宝精诚求之。”
此皆言其诚心用事,而不可稍有诡谲诈伪之心也。
夫学者学道,贵乎真心实意,自卑自下,方能感动真师,取信良友,受其益惠。
盖我有真心,而师友即以真心待之;我有实意,而师友即以实意待之。
此感彼应,一定不易之理。
倘不能真心实意,反以诡谲诈伪为事,面是心非,自谓可以瞒哄高明。
殊不知真师明鉴照远,一见即识真假。
欺人实自欺,瞒人实自瞒。
不但无益于事,而且反坏于事。
诡诈奚为哉。世间糊涂学人,糊涂出家,糊涂学道。
将性命视为平常之物,将学道视为平常之事。
遇真师即问元关,见道朋自夸奥妙。
并不知尊师之理,敬友之道。
或谎言诡语而侮慢;或假意虚情而妆饰;或巧言令色,徒取人悦;或指东画西,诱人露话;或斜卧依靠而问难;或一头一饭而求诀;或对坐高谈而辨别;或稍有磨炼而怀恨;或偶遇苦事而躲避;或看经书而略观大义,一过即了;或听师言而不尝滋味,谨记话头;或外虽学道,心中又图谋别事;或既想修行,转身又缠染俗情。如此弊病,不一而足。
如何感的真师指点,良友扶持?
吾劝真心学道者,速将诡诈关口打通,换出个至诚心肠。
从实落处进步,万不可存丝毫诡谲之心,欺人欺己,误了前程。
盖诚之一字,能以动天地,通鬼神,感人物。
岂有师友而不能感动者乎?
即能感动师友,则大道可冀。
否则稍有虚假诡诈之念,则心不诚。
心不诚,方寸中亦生大病,不但不能求真,而且反昧其真。
妄想明道,难矣。

此关言到“诚”之一字,诚字乃是言成。

少年时看的第一部竖排繁体字书是《四游记》,对《东游记》与《北游记》印象最深,两者均有帝君凡心一动,言出于口的故事。

今天就再温习一下北游记内一段:


却说刘天君正坐之间,忽见使到,接入坐下。刘天君问曰:“使命大人至此,有何旨意?”星君曰:“圣上设宴,忽见贵宅宝树,毫光闪闪,圣上爱之,命下官造府,要讨此物。”刘天君曰:“要此安敢不从?但吾世代接续有此树,树中有七宝常时而出。圣上若要此树,恐动之,七宝散去,不会有光,又恐不发。其实无用。烦使命大人回奏玉帝,免致害却此物可也。”

使命闻言告退,回奏玉帝,奏明前事。玉帝闻奏,大怒言曰:“吾为一天之主,倒不及刘天君家有此树,能生七宝,光现照人,妙不可言。”又问众臣曰:“其树要何人常得享用?”众臣奏曰:“此树惟有刘天君家子孙方得管理享用。”帝闻奏。忽然失声叹曰“如何能得到他家做个子孙,得享用此物,孤心足矣!”众臣听罢玉帝之言,个个大惊,出班奏曰:“圣人不乱言。圣上既出此言,必当改位投胎。”玉帝心意,只想那接天树,不顾降生之苦,亦答曰:“依卿之言,孤去则谁为主?”众臣又奏曰:“陛下三魂化身,当指一魂化身,去降生投胎。”玉帝闻奏,听说要他三魂指一魂去,不觉下泪。

众臣奏曰:“陛下圣言一出,安可食之?无信不立,陛下宜速发旨。”玉帝曰:“虽孤今日指一魂化身降生,何日完之?”众臣奏曰:“陛下勿忧。功成完满,依旧还原。”玉帝只得指一魂化身,众臣各起一道金光,直送往刘天君家去降生不题。

此类情节有几处,可知诚之一字是牵涉到本源,言出于口,情动于衷而形于外。

不到那一刻,恐怕自己也不知自己的诚意有几何。

此关通法,唯有战战兢兢,如履薄冰,念念不忘一个诚字,必有回响。


author

本文由Jesse Lau原创

2012年定居新西兰至今,自由职业者,从事网站和程式交易,曾获得Dukascopy外汇程序交易比赛2届月度冠军(id:Tradingwithea).
本文采用知识共享署名 4.0 国际许可协议进行许可。


留点评论吧:

本网站使用cookie技术以提高用户体验度。 了解我们的隐私政策 我已了解