我的頁面我做主——瀏覽器去廣告正確姿勢

會CSS就會去廣告~

傳統(tǒng)去廣告方法的弊端

我們?yōu)g覽網(wǎng)頁的時(shí)候經(jīng)常不免會看到各種不想看到的廣告內(nèi)容怯晕,最簡單的方案就是通過瀏覽器插件來解決潜圃,比如大名鼎鼎的AdBlock插件以及國內(nèi)的各種廣告攔截助手缸棵。
但這些插件的攔截能力可定制化程度不高,像AdBlock需要通過其定義的一套語法規(guī)則通過CSS選擇器來屏蔽一些DOM元素谭期,碰到一些特殊的情況就無能為力了堵第。
比如一個(gè)頁面上的某些重要元素被綁定了事件,點(diǎn)擊的時(shí)候會跳轉(zhuǎn)到廣告頁面隧出,這時(shí)候就不能通過簡單的屏蔽DOM元素的方式來實(shí)現(xiàn)了踏志。

簡單高效的自定義方式

對于這些情況我們可以使用一個(gè)強(qiáng)大的瀏覽器插件——Greasemonkey,簡稱GM胀瞪,中文俗稱為“油猴”针余,支持Firefox和Chrome瀏覽器。
油猴并不是一個(gè)專門用來去廣告的插件凄诞,而是一個(gè)往頁面中植入JavaScript代碼的工具圆雁,用來修改頁面,或者添加一些功能帆谍,比如自動填充表單伪朽、顯示網(wǎng)盤文件下載鏈接等。
開發(fā)功能非常簡單汛蝙,只需要通過js調(diào)用對應(yīng)API函數(shù)即可烈涮。
簡單幾行代碼,就可以去除大部分頁面廣告窖剑。

快速入門GM腳本

油猴的使用非常簡單坚洽,我們編寫一個(gè)js腳本,然后配置好對應(yīng)的網(wǎng)址西土。
這樣當(dāng)瀏覽器訪問匹配的網(wǎng)址時(shí)讶舰,油猴會加載我們編寫的js腳本,運(yùn)行里面的代碼翠储。
簡而言之分兩步绘雁。

  • 配置腳本。配置項(xiàng)大概在20個(gè)左右援所,下面我們介紹最重要的3個(gè)配置項(xiàng)庐舟。
  • 編寫腳本。調(diào)用插件提供的API函數(shù)住拭,為頁面添加CSS樣式或者執(zhí)行js代碼挪略。
  • @include 腳本匹配的網(wǎng)址历帚,支持星號“* ”來匹配任意字符「苡椋可以使用多次表示匹配多個(gè)網(wǎng)址挽牢。
  • @grant 聲明需要使用的API函數(shù)。
  • @run-at 腳本執(zhí)行的時(shí)間摊求,有5個(gè)可選值禽拔,CSS樣式我們選擇“document-start”在頁面渲染之前加載,而js腳本可以選擇“document-end”在頁面渲染完成后加載室叉。
    需要注意的是睹栖,配置參數(shù)是在以==UserScript==開頭,==/UserScript==結(jié)尾的注釋中的茧痕。
    完整的示例如下:
    // ==UserScript==// @name         XX廣告過濾// @version      0.1// @icon         https://www.xxx.com/favicon.ico// @description  try to take over the world!// @author       You// @include      http*://xx.com/*// @grant GM_addStyle// @run-at document-start// ==/UserScript==
    具體說明可以參考官方文檔:
    https://www.tampermonkey.net/documentation.php?ext=dhdg&show=dhdg

    2種常見場景以及對應(yīng)的操作

    修改樣式

    這是最簡單的屏蔽廣告的方式野来,只要配置規(guī)則就行了,能屏蔽80%以上的廣告踪旷。
    以某論壇廣告為例曼氛,這個(gè)論壇的廣告是直接夾雜在帖子當(dāng)中,下方有個(gè)小小的字標(biāo)明廣告令野,一不小心就點(diǎn)進(jìn)去了舀患。
    而且帖子中間夾雜著毫不相干的廣告,相當(dāng)影響體驗(yàn)彩掐。



  • 這種廣告屏蔽起來相當(dāng)簡單构舟,寫一條樣式規(guī)則,將其display屬性置為none就行了堵幽。
    .home-place-item {display: none!important;}
    以防被覆蓋狗超,我們可以加上!important提升權(quán)限。
    大部分廣告可以通過上面 css選擇器 + display屬性 的方式屏蔽朴下。但有些廣告處理起來會比較麻煩努咐。
    例如搜索引擎的廣告,就使用了一些方式來“保護(hù)”殴胧。
    某搜索引擎搜索“機(jī)票”可以看到下面的廣告信息渗稍。



  • 可以看到該廣告元素style屬性中使用了最高權(quán)重的display、visibility兩個(gè)屬性团滥,所以用上面隱藏的方式肯定是無效的竿屹。
    所以只能選擇其他的方式,這里需要考驗(yàn)大家的css基本功了灸姊。
    讓一個(gè)元素隱藏的方式有哪些拱燃?
    下面是一種實(shí)現(xiàn)方式:
    [cmatchid] {height: 0;overflow: hidden;}

    阻止js文件加載

    還有一類廣告并不是以靜態(tài)元素的方式呈現(xiàn),甚至你在頁面上都看不到它力惯,它只在你第一次點(diǎn)擊某個(gè)功能的時(shí)候彈出來碗誉。
    這種處理起來就相對麻煩召嘶,因?yàn)橹苯訉υ剡M(jìn)行修改可能會影響到正常功能使用。
    但是這種廣告的事件綁定一般都是單獨(dú)寫在某個(gè)js文件中的哮缺,細(xì)心查找弄跌,然后阻止對應(yīng)的js文件加載就可以從根本上解決問題。
    瀏覽器其實(shí)為插件提供了API用來阻止資源加載尝苇,但是油猴卻沒有主動提供铛只。
    后來在issue中找到了一個(gè)隱藏API來實(shí)現(xiàn)這個(gè)功能。
    以阻止 https://xx.com 下的文件為例茎匠,可以在腳本開頭引用webRequest功能:
    // @webRequest [{"selector":"https://xx.com/*","action":"cancel"}]

    更多

    只要你懂web前端格仲,只要你肯動手押袍,你的網(wǎng)頁都可以變成你想象的樣子诵冒。
    裝上插件,去自定義你的頁面吧谊惭!
    示例腳本地址:
    https://github.com/yalishizhude/block-ad-scripts
  • ?

    最后編輯于
    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
    • 序言:七十年代末汽馋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子圈盔,更是在濱河造成了極大的恐慌豹芯,老刑警劉巖,帶你破解...
      沈念sama閱讀 218,036評論 6 506
    • 序言:濱河連續(xù)發(fā)生了三起死亡事件驱敲,死亡現(xiàn)場離奇詭異铁蹈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)众眨,發(fā)現(xiàn)死者居然都...
      沈念sama閱讀 93,046評論 3 395
    • 文/潘曉璐 我一進(jìn)店門握牧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人娩梨,你說我怎么就攤上這事沿腰。” “怎么了狈定?”我有些...
      開封第一講書人閱讀 164,411評論 0 354
    • 文/不壞的土叔 我叫張陵颂龙,是天一觀的道長。 經(jīng)常有香客問我纽什,道長措嵌,這世上最難降的妖魔是什么? 我笑而不...
      開封第一講書人閱讀 58,622評論 1 293
    • 正文 為了忘掉前任芦缰,我火速辦了婚禮企巢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘饺藤。我一直安慰自己包斑,他們只是感情好流礁,可當(dāng)我...
      茶點(diǎn)故事閱讀 67,661評論 6 392
    • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著罗丰,像睡著了一般神帅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萌抵,一...
      開封第一講書人閱讀 51,521評論 1 304
    • 那天找御,我揣著相機(jī)與錄音,去河邊找鬼绍填。 笑死霎桅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的讨永。 我是一名探鬼主播滔驶,決...
      沈念sama閱讀 40,288評論 3 418
    • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卿闹!你這毒婦竟也來了揭糕?” 一聲冷哼從身側(cè)響起,我...
      開封第一講書人閱讀 39,200評論 0 276
    • 序言:老撾萬榮一對情侶失蹤锻霎,失蹤者是張志新(化名)和其女友劉穎著角,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旋恼,經(jīng)...
      沈念sama閱讀 45,644評論 1 314
    • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吏口,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
      茶點(diǎn)故事閱讀 37,837評論 3 336
    • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冰更。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片产徊。...
      茶點(diǎn)故事閱讀 39,953評論 1 348
    • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冬殃,靈堂內(nèi)的尸體忽然破棺而出囚痴,到底是詐尸還是另有隱情,我是刑警寧澤审葬,帶...
      沈念sama閱讀 35,673評論 5 346
    • 正文 年R本政府宣布深滚,位于F島的核電站,受9級特大地震影響涣觉,放射性物質(zhì)發(fā)生泄漏痴荐。R本人自食惡果不足惜,卻給世界環(huán)境...
      茶點(diǎn)故事閱讀 41,281評論 3 329
    • 文/蒙蒙 一官册、第九天 我趴在偏房一處隱蔽的房頂上張望生兆。 院中可真熱鬧,春花似錦膝宁、人聲如沸鸦难。這莊子的主人今日做“春日...
      開封第一講書人閱讀 31,889評論 0 22
    • 文/蒼蘭香墨 我抬頭看了看天上的太陽合蔽。三九已至击敌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拴事,已是汗流浹背沃斤。 一陣腳步聲響...
      開封第一講書人閱讀 33,011評論 1 269
    • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刃宵,地道東北人衡瓶。 一個(gè)月前我還...
      沈念sama閱讀 48,119評論 3 370
    • 正文 我出身青樓,卻偏偏與公主長得像牲证,于是被迫代替她去往敵國和親哮针。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
      茶點(diǎn)故事閱讀 44,901評論 2 355

    推薦閱讀更多精彩內(nèi)容

    • ?前端面試題匯總 一从隆、HTML和CSS 21 你做的頁面在哪些流覽器測試過诚撵?這些瀏覽器的內(nèi)核分別是什么? ...
      Simon_s閱讀 2,220評論 0 8
    • 發(fā)送 & 接收信息 數(shù)據(jù)是以“數(shù)據(jù)包”的形式通過互聯(lián)網(wǎng)發(fā)送,而數(shù)據(jù)包以字節(jié)為單位键闺。當(dāng)你編寫一些 HTML、CSS ...
      mongofeng閱讀 917評論 0 0
    • 前端開發(fā)面試題 面試題目: 根據(jù)你的等級和職位的變化澈驼,入門級到專家級辛燥,廣度和深度都會有所增加瞎抛。 題目類型: 理論知...
      怡寶丶閱讀 2,583評論 0 7
    • 前端面試題的簡單整理鞍帝,都只是大概回答勋又,具體某些問題的具體理解后續(xù)會補(bǔ)上旋廷。 前端頁面有哪三層構(gòu)成戈锻,分別是什么?作用是...
      李歡li閱讀 483評論 0 2
    • 有時(shí)候會討厭不甘平庸卻又不好好努力的自己挠他,覺得自己不夠好女阀,羨慕別人閃閃發(fā)光湖员,但其實(shí)大多人都是普通的漠其,只是別人的付出...
      茉言心語閱讀 315評論 1 3