MozTW 討論區
https://forum.moztw.org/

以無擴充套件的Firefox擋廣告 ( userContent.css 隱藏法)
https://forum.moztw.org/viewtopic.php?f=2&t=11923
1 頁 (共 2 頁)

發表人:  catho7 [ 2005-12-11, 16:04 ]
文章主題 :  以無擴充套件的Firefox擋廣告 ( userContent.css 隱藏法)

一般人想在Firefox擋廣告大多會使用Adblock這類擴充套件,但這類擴充套件往往會影響Firefox的效能。

所以有些人寧願使用Firefox內置的「拒絕圖片」功能,都不裝相關的擴充套件。

不過這功能頗為極端,一擋就是擋下整個網址的圖片。而且這只對圖片有效,對於Flash只能默默忍受,雖然可以選擇移除Flash player,但這會做成很多不便。

Firefox 1.5可以針對特定網站設立CSS,而我們就是要把這功能應用到擋廣告之上。所以建議在開始之前,先看一看針對特定網站設立樣式稍為了解一下。

以下範例的作用是擋掉網址以http://www.macromedia.com/開頭的所有Flash
代碼:
@-moz-document url-prefix(http://www.macromedia.com/) {
object {
display:none !important;
}
}
雖然object不只是用來貼Flash,但它現在確實像Flash專用般,加上現在是針對特定網站去擋,所以誤擋率其實很低。

加上!important是為了避免語法受網站本身的CSS影響而失效。

在尋找網頁上的廣告部份時,可先反白廣告的位置,然後右鍵,選擇「檢視選取範圍原始碼」,這能省掉很多時間。

還有一點值得注意,我們不需要考慮這些CSS是否相容其他瀏覽器,因為這只會在Firefox上使用。因此,我們可以使用很多不同的選擇符(Selectors),例如IE不支援的[attr="value"]

應用例子A:
擋下闊度為760的圖片
代碼:
img[width="760"] {
display:none !important;
}
應用例子B:
擋下Google生成的iframe廣告
代碼:
iframe[name="google_ads_frame"] {
display:none !important;
}
由於這種做法只會對特定的網站有效,所以誤擋率較低。不過也有誤擋率較高的做法,就是去掉@-moz-document url-prefix(URL) {}的部份,直接寫上CSS,這將會在所有網站生效。

個人認為,Flash player應允許使用者拒絕特定網站的Flash,但相信是出於商業考量,而沒有此功能。

相關連結:
針對特定網站設立樣式
合標準的CSS教學

原文: http://catho7.blogspot.com/2005/12/firefox_11.html

發表人:  MilchFlasche [ 2005-12-11, 23:59 ]
文章主題 : 

這個方法好啊!!!CSS萬歲!Firefox萬歲! :D

發表人:  訪客 [ 2005-12-12, 01:42 ]
文章主題 : 

我個人覺得,如果有能力,這種方式應該會比 adblock 好。

常常聽說 adblock 當條件太多時會影響 fx 的速度 (我沒用過 adblock 實情不清楚),但用 css 來擋根本就不會有影響。

另外 { } 內的 display: none !important; 可以改成:
代碼:
visibility: hidden !important;


因為有時用 display: none 會影響排版,用 visibility 的話,還是會留出排版位置,只是不顯示而已。

發表人:  catho7 [ 2005-12-12, 12:44 ]
文章主題 : 

hemiola 寫:
另外 { } 內的 display: none !important; 可以改成:
代碼:
visibility: hidden !important;


因為有時用 display: none 會影響排版,用 visibility 的話,還是會留出排版位置,只是不顯示而已。

還有哪些把大小設為負數的方式 :D

這種做法真是有待發掘

發表人:  Ada [ 2005-12-12, 15:00 ]
文章主題 : 

用 CSS 擋法,應該還是要所有網頁內容都先下載完後 CSS 才會生效,我經常看到原畫面一閃而過後才變成精簡版的結果(都拿來擋 yahoo 的廣告... :p )

其他 xxBlock 則似乎是直接忽略不處理,應該才能真正減少頻寬的使用!

發表人:  james [ 2005-12-12, 16:38 ]
文章主題 : 

以未使用套件的方式而言,這招式漂亮經典。
但是,應該不能說是"檔"廣告,比較像是矇住眼睛,眼不見為淨。

請教先進,以 自動循環播放的 Flash 物件或動態 GIF 為例,"不見"之後,是否仍會佔用資源?

發表人:  訪客 [ 2005-12-12, 17:04 ]
文章主題 : 

Ada 寫:
用 CSS 擋法,應該還是要所有網頁內容都先下載完後 CSS 才會生效,我經常看到原畫面一閃而過後才變成精簡版的結果(都拿來擋 yahoo 的廣告... :p )

其他 xxBlock 則似乎是直接忽略不處理,應該才能真正減少頻寬的使用!


誰比較省頻寬這我並不清楚,但對於你說 css 要所有網頁內容先載完才生效,我的看法極為不同。

如果照你所說的,所有的網頁在下載時都得載完才會看到設計者設計的版面,而 stop autoplay 也絕對沒有用了,網頁還沒載完音樂就開始唱了。

我的看法是,只要讀進來合 css rules 的馬上就處理,否則萬一網頁中一張圖開不出來什麼的造成網頁沒載完怎麼辦?

發表人:  catho7 [ 2005-12-12, 19:12 ]
文章主題 : 

Ada 寫:
其他 xxBlock 則似乎是直接忽略不處理,應該才能真正減少頻寬的使用!
雖然不清楚adblock實際是怎樣處理,但adblock所擋下的確實不會進快取的,而這種做法還是會進到快取去的
james 寫:
應該不能說是"檔"廣告,比較像是矇住眼睛,眼不見為淨。

請教先進,以 自動循環播放的 Flash 物件或動態 GIF 為例,"不見"之後,是否仍會佔用資源?
對,我也覺得不能說是擋的,但一直想不到一個好標題,所以都不管

佔用資源方面,我只說flash的情況吧,因為沒試過動態GIF會怎樣.

實驗:
開啟三個分頁
1.Mozilla Taiwan 討論區: 發表回覆
2. http://www.hkepc.com/
3. http://www.hkepc.com/

userContent.css檔案內容:
代碼:
@-moz-document url-prefix(http://www.hkepc.com/), url-prefix(http://www.sitemeter.com/), domain(greedland.net), url-prefix(http://dm.www.wangyou.com/), url-prefix(http://www3.emu-zone.org/), domain(yahoo.com) {
object, #ad, img[width="760"], iframe[name="google_ads_frame"], #mbtb, iframe[width="728"] {
display:none !important;
}
}
以下是由工作管理員所看到的,同樣是在靜止狀態

userContent.css套用狀態下:
cpu使用量:0-7%
記憶體使用量:29xxx k - 31xxx k

無userContent.css檔:
cpu使用量:20-5x%
記憶體使用量:69xxx k - 7xxxx k

發表人:  wini [ 2005-12-12, 19:35 ]
文章主題 : 

(以下是純猜測,請看看就好。)

就 HTML 的原始碼來看,
先載入檔頭 ( head ) 及 CSS 規則,
再接著載入主體內容 ( body ) 。
而該份存在本機用以阻止網頁繼續下載資料的 CSS 語法,
應該是會在載入網頁時就逐步地進行套用了,
所以一讀到 object 就會不去顯示後面的資料,
直到讀到了 object 的結束標籤再繼續顯示,
也就是說,會逐步地讀進所有 HTML 「原始碼」內的文字資料,
但不會去下載、載入、顯示 object 所要求的物件。

所以標題改成「拒絕繼續讀入網頁所要求的物件資料」會比較適合?

(事實上我並沒有實驗過 display:none; 是否真的不會去讀入物件啦)

發表人:  catho7 [ 2005-12-12, 19:50 ]
文章主題 : 

wini 寫:
所以標題改成「拒絕繼續讀入網頁所要求的物件資料」會比較適合?

(事實上我並沒有實驗過 display:none; 是否真的不會去讀入物件啦)

display:none;還是會下載的,但下載之後到底怎處理真是不知道了...

這個標題就是為了騙人看嘛 :P
而且必須強調不用擴充套件來做到

發表人:  wini [ 2005-12-12, 20:09 ]
文章主題 : 

catho7 寫:
wini 寫:
所以標題改成「拒絕繼續讀入網頁所要求的物件資料」會比較適合?

(事實上我並沒有實驗過 display:none; 是否真的不會去讀入物件啦)

display:none;還是會下載的,但下載之後到底怎處理真是不知道了...

這個標題就是為了騙人看嘛 :P
而且必須強調不用擴充套件來做到

我覺得我的感情被欺騙了 QwQ

不過要擋 plugin 物件和 javascript 的話,
我個人是用 NoScript 啦。

不過這篇也可以當成不錯的 CSS 教學倒是 XD

發表人:  訪客 [ 2005-12-12, 21:56 ]
文章主題 : 

我試過了,不論 display 還是 visibility 的方法,fx 都還是會把圖載進來。flash 我就不知道了。

發表人:  james [ 2005-12-15, 00:04 ]
文章主題 : 

Mozilla: Ad Blocking 有進階的巢狀式用法,
包含通用的 Blocking List: ad_blocking.css
針對特定網站的 sites.css
還有 style.css

可分類建立規則,再由 userContent.css 引入。

發表人:  jammin [ 2006-01-02, 14:54 ]
文章主題 :  custom CSS rules

這真是一個非常好用的功能!
可針對特定的網站『自訂』頁面樣式,
除了可擋廣告外,還可隱藏區塊、自訂文字或連結的大小、顏色……等。

下列是擋 蕃薯藤新聞 廣告的檔案,
請將檔案儲存到 %AppData%\Mozilla\Firefox\Profiles\xxxxxxxx.default\chrome\
※若 userContent.css 已存在,請將 @import url("news.yam.com.css"); 加入到 userContent.css

news.yam.com.css
代碼:
@-moz-document domain(yam.com) {
  a:link[href^="http://ads.yam.com/click?ADTYPE="],
  a:link[href^="http://ads.yam.com/nclick?MID="],
  iframe[id="act_frame"],  /* Ads by Gooooogle */
  div[id="pot_Banner_flash"],  /* yamFlashBanner */
  embed[id="obj_Banner_flash"],
  div[id^="pot_adBanner_flash"],  /* YamAD_294 */
  object[id^="pot_adBanner_flash_"],  /* YamAD_294*/
  object[id^="obj_Banner_flash"],
  a[href*="http://ad.scupio.com.tw"],  /* 刊登酷比廣告 */
  table[border="1"][bordercolor="#78c5bb"][cellpadding="5"][cellspacing="0"][width="298"] > tbody > tr:first-child > td:first-child[bordercolor="#FFFFFF"],  /* scupio */
  div[id="floating"]  /* 浮水印 */
  {display:none !important;}
}



userContent.css
代碼:
@import url("news.yam.com.css");

發表人:  tszkin [ 2006-01-02, 17:28 ]
文章主題 : 

catho7 寫:
實驗:
開啟三個分頁
1.Mozilla Taiwan 討論區: 發表回覆
2. http://www.hkepc.com/
3. http://www.hkepc.com/


===========
路過....
原來你有上epc啊! :P
我是該壇會員firefox啊 :)

1 頁 (共 2 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/