摘要:簡單高效的自定義方式對于這些情況我們可以使用一個強(qiáng)大的瀏覽器插件,簡稱,中文俗稱為油猴,支持和瀏覽器。簡單幾行代碼,就可以去除大部分頁面廣告。聲明需要使用的函數(shù)。
會CSS就會去廣告~
傳統(tǒng)去廣告方法的弊端我們?yōu)g覽網(wǎng)頁的時候經(jīng)常不免會看到各種不想看到的廣告內(nèi)容,最簡單的方案就是通過瀏覽器插件來解決,比如大名鼎鼎的AdBlock插件以及國內(nèi)的各種廣告攔截助手。
但這些插件的攔截能力可定制化程度不高,像AdBlock需要通過其定義的一套語法規(guī)則通過CSS選擇器來屏蔽一些DOM元素,碰到一些特殊的情況就無能為力了。
比如一個頁面上的某些重要元素被綁定了事件,點(diǎn)擊的時候會跳轉(zhuǎn)到廣告頁面,這時候就不能通過簡單的屏蔽DOM元素的方式來實(shí)現(xiàn)了。
簡單高效的自定義方式對于這些情況我們可以使用一個強(qiáng)大的瀏覽器插件——Greasemonkey,簡稱GM,中文俗稱為“油猴”,支持Firefox和Chrome瀏覽器。
油猴并不是一個專門用來去廣告的插件,而是一個往頁面中植入JavaScript代碼的工具,用來修改頁面,或者添加一些功能,比如自動填充表單、顯示網(wǎng)盤文件下載鏈接等。
開發(fā)功能非常簡單,只需要通過js調(diào)用對應(yīng)API函數(shù)即可。
簡單幾行代碼,就可以去除大部分頁面廣告。
快速入門GM腳本油猴的使用非常簡單,我們編寫一個js腳本,然后配置好對應(yīng)的網(wǎng)址。
這樣當(dāng)瀏覽器訪問匹配的網(wǎng)址時,油猴會加載我們編寫的js腳本,運(yùn)行里面的代碼。
簡而言之分兩步。
配置腳本。配置項(xiàng)大概在20個左右,下面我們介紹最重要的3個配置項(xiàng)。
編寫腳本。調(diào)用插件提供的API函數(shù),為頁面添加CSS樣式或者執(zhí)行js代碼。
@include 腳本匹配的網(wǎng)址,支持星號“* ”來匹配任意字符??梢允褂枚啻伪硎酒ヅ涠鄠€網(wǎng)址。
@grant 聲明需要使用的API函數(shù)。
@run-at 腳本執(zhí)行的時間,有5個可選值,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
這是最簡單的屏蔽廣告的方式,只要配置規(guī)則就行了,能屏蔽80%以上的廣告。
以某論壇廣告為例,這個論壇的廣告是直接夾雜在帖子當(dāng)中,下方有個小小的字標(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兩個屬性,所以用上面隱藏的方式肯定是無效的。
所以只能選擇其他的方式,這里需要考驗(yàn)大家的css基本功了。
讓一個元素隱藏的方式有哪些?
下面是一種實(shí)現(xiàn)方式:
[cmatchid] { height: 0; overflow: hidden; }阻止js文件加載
還有一類廣告并不是以靜態(tài)元素的方式呈現(xiàn),甚至你在頁面上都看不到它,它只在你第一次點(diǎn)擊某個功能的時候彈出來。
這種處理起來就相對麻煩,因?yàn)橹苯訉υ剡M(jìn)行修改可能會影響到正常功能使用。
但是這種廣告的事件綁定一般都是多帶帶寫在某個js文件中的,細(xì)心查找,然后阻止對應(yīng)的js文件加載就可以從根本上解決問題。
瀏覽器其實(shí)為插件提供了API用來阻止資源加載,但是油猴卻沒有主動提供。
后來在issue中找到了一個隱藏API來實(shí)現(xiàn)這個功能。
以阻止 https://xx.com 下的文件為例,可以在腳本開頭引用webRequest功能:
// @webRequest [{"selector":"https://xx.com/*","action":"cancel"}]更多
只要你懂web前端,只要你肯動手,你的網(wǎng)頁都可以變成你想象的樣子。
裝上插件,去自定義你的頁面吧!
示例腳本地址:
https://github.com/yalishizhude/block-ad-scripts
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/116113.html
摘要:簡單高效的自定義方式對于這些情況我們可以使用一個強(qiáng)大的瀏覽器插件,簡稱,中文俗稱為油猴,支持和瀏覽器。簡單幾行代碼,就可以去除大部分頁面廣告。聲明需要使用的函數(shù)。 會CSS就會去廣告~ 傳統(tǒng)去廣告方法的弊端 我們?yōu)g覽網(wǎng)頁的時候經(jīng)常不免會看到各種不想看到的廣告內(nèi)容,最簡單的方案就是通過瀏覽器插件來解決,比如大名鼎鼎的AdBlock插件以及國內(nèi)的各種廣告攔截助手。 但這些插件的攔截能力可...
摘要:什么是油猴子腳本,簡稱,中文俗稱為油猴,是的一個附加組件。中文用戶腳本開發(fā)手冊油猴子腳本開發(fā)深入淺出如何使用他人的腳本網(wǎng)站提供很多腳本,它仿佛是代碼界的可以在該網(wǎng)站搜到很多有意思的腳本。 當(dāng)你用瀏覽器訪問某個網(wǎng)頁時,你可曾想過,你看到的這個網(wǎng)頁,實(shí)際上是屬于你自己的。 打個比喻:訪問某個網(wǎng)站就好像是網(wǎng)購了一筐雞蛋,雞蛋雖然是養(yǎng)雞場生產(chǎn)的,但是這個蛋我怎么吃,你養(yǎng)雞場管不著。 當(dāng)然了,對...
摘要:在這些文件的下載執(zhí)行過程中,用戶看到的則是一片空白。頁面仍然必須等到所有代碼下載并執(zhí)行完畢才能繼續(xù)渲染。 前言 kyrieliuの《高性能JavaScript》讀書筆記。 script標(biāo)簽是一個很霸道的狠角色,它的每次出現(xiàn)都讓頁面等待腳本的解析和執(zhí)行。也就是說,不管當(dāng)前的javascript代碼是內(nèi)嵌還是包含在外鏈文件中,頁面的下載和渲染都必須停下來等待腳本執(zhí)行完成。 其實(shí),scri...
閱讀 4817·2021-11-18 13:23
閱讀 927·2021-09-22 15:24
閱讀 1953·2021-09-06 15:00
閱讀 2661·2021-09-03 10:30
閱讀 1315·2021-09-02 15:15
閱讀 2112·2019-08-30 15:54
閱讀 3058·2019-08-30 15:44
閱讀 1480·2019-08-29 15:12