如果屏蔽頁面上的廣告?對(duì)于普通用戶來說,使用AdBlock插件是最佳選擇(針對(duì)火狐瀏覽器和谷歌瀏覽器用戶,不知道IE瀏覽器容易如何處理這樣的問題)。
?
沒有人喜歡廣告,但在互聯(lián)網(wǎng)上,絕大多數(shù)網(wǎng)站的主要來源只有廣告,如果沒有廣告收入,這些網(wǎng)站基本上都會(huì)倒閉。
?
為了在投放放過和不騷擾用戶之間取得平衡,很多站長(zhǎng)是很有克制在頁面上投放少量的廣告。但站長(zhǎng)們的這些良苦用心往往會(huì)被一些流氓寬帶商的惡意行為給 粉碎了。幾乎所有的寬帶商(聯(lián)通寬帶、電信寬帶、移動(dòng)寬帶、長(zhǎng)城寬帶、方正寬帶等)都會(huì)在用戶使用它們的寬帶服務(wù)瀏覽網(wǎng)頁時(shí),在這些網(wǎng)頁的頁面上強(qiáng)行嵌入 自己的廣告服務(wù)。
?
以大家熟知的36kr網(wǎng)站為例子來說明這個(gè)問題。我使用的是方正寬帶,當(dāng)用戶訪問36kr網(wǎng)站的頁面時(shí),正常情況下,36kr網(wǎng)站的頁面是沒有放置廣告的,更不會(huì)在頁面的右下角彈出廣告。但當(dāng)使用方正寬帶訪問36kr網(wǎng)站時(shí),你就會(huì)發(fā)現(xiàn)頁面右下角有廣告彈出。
?
?
我們使用火狐瀏覽器的代碼調(diào)試窗口,發(fā)現(xiàn),在頁面的尾部無端多出來很多
iframe
和嵌入有廣告代碼的
div
。很顯然,這些代碼并不是36kr放置的。它是寬帶商捕捉用戶瀏覽的網(wǎng)頁,擅自非法的這些頁面上添加自己的廣告服務(wù)代碼。這些代碼能給寬帶商帶來一筆額外的收入。
?
?
對(duì)于站長(zhǎng)來說,這些廣告很討厭,用戶會(huì)認(rèn)為這些都是網(wǎng)站站長(zhǎng)投放的。站長(zhǎng)背了黑鍋,而且沒得到任何好處,更重要的,影響了在用戶心中的形象,流失了用戶。
?
站長(zhǎng)應(yīng)該維權(quán),但站長(zhǎng)是弱勢(shì)群體,維權(quán)路上很難成功。那么,我們只能自己想辦法,我們可以通過技術(shù)的手段,在頁面代碼里做一些改動(dòng),阻攔或屏蔽這些寬帶商非法嵌入的代碼。
?
我發(fā)現(xiàn),寬帶商非法嵌入的廣告代碼通常是兩種形式,一種是在頁面尾部加入數(shù)個(gè)
iframe
,
iframe
里的內(nèi)容是寬帶商承攬的廣告;另外一種形式是直接嵌入
div
,
div
里嵌入一些html代碼和js,最終呈現(xiàn)的內(nèi)容還是寬帶商承攬的廣告。
?
但無論是
iframe
還是
div
,這些HTML廣告代碼都有相同的特征。
?
首先說說
iframe
形式,這些
iframe
在頁面文檔中的位置一定都是
body
元素的直接子元素,用CSS 選擇器可以這樣表示:
body > iframe{....}
?
?
以我個(gè)人的經(jīng)驗(yàn),一般正常的頁面里很少有使用
iframe
的,即使有,也很少有將
iframe
直接放到
body
元素下的。所以,對(duì)于這些流氓寬帶商非法嵌入的
iframe
,我們可以通過下面的CSS進(jìn)行屏蔽:
body > iframe{ opacity:0; display:none; }
?
?
?
把這段代碼放入頁面里,這非法嵌入的廣告
iframe
,雖然存在,但完全看不見。
?
對(duì)于第二種情況,也就是
div
形式的廣告,我發(fā)現(xiàn)這些
div
通常會(huì)放置在頁面的最后,也就是頁面里正常HTML元素的最后一個(gè)的后面。如果我們的頁面里最后一個(gè)元素是:
<div id='last-div'></div>
?
?
?
,則就要其后非法插入的廣告代碼的CSS選擇可以是這樣:
div#last-div ~ div {。。。。}
?
?
?
,只要能捕捉目標(biāo),我們就能消滅它們,隱藏這些非法入侵者的代碼很簡(jiǎn)單,跟上面消滅
iframe
的方式一樣:
div#last-div ~ div { display: none; opacity:0; }
?
?
?
將上面這這種代碼一起放到頁面里的CSS文件里,黑心的寬帶商非法插入的廣告就無法顯示,我只是小范圍的測(cè)試了一下,效果很好,但很有可能還有更多沒有考慮到的情況。如果你知道這種方法有遺漏的地方,或者有更好的方法,請(qǐng)告訴我,在下面留言,或發(fā)郵件給我,謝謝。
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
