| 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不只是用來貼Flash,但它現在確實像Flash專用般,加上現在是針對特定網站去擋,所以誤擋率其實很低。object { display:none !important; } } 加上!important是為了避免語法受網站本身的CSS影響而失效。 在尋找網頁上的廣告部份時,可先反白廣告的位置,然後右鍵,選擇「檢視選取範圍原始碼」,這能省掉很多時間。 還有一點值得注意,我們不需要考慮這些CSS是否相容其他瀏覽器,因為這只會在Firefox上使用。因此,我們可以使用很多不同的選擇符(Selectors),例如IE不支援的[attr="value"] 應用例子A: 擋下闊度為760的圖片 代碼: img[width="760"] { 應用例子B:display:none !important; } 擋下Google生成的iframe廣告 代碼: iframe[name="google_ads_frame"] { 由於這種做法只會對特定的網站有效,所以誤擋率較低。不過也有誤擋率較高的做法,就是去掉@-moz-document url-prefix(URL) {}的部份,直接寫上CSS,這將會在所有網站生效。display:none !important; } 個人認為,Flash player應允許使用者拒絕特定網站的Flash,但相信是出於商業考量,而沒有此功能。 相關連結: 針對特定網站設立樣式 合標準的CSS教學 原文: http://catho7.blogspot.com/2005/12/firefox_11.html |
|
| 發表人: | MilchFlasche [ 2005-12-11, 23:59 ] |
| 文章主題 : | |
這個方法好啊!!!CSS萬歲!Firefox萬歲! |
|
| 發表人: | 訪客 [ 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 的話,還是會留出排版位置,只是不顯示而已。 還有哪些把大小設為負數的方式 這種做法真是有待發掘 |
|
| 發表人: | 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;還是會下載的,但下載之後到底怎處理真是不知道了... 這個標題就是為了騙人看嘛 而且必須強調不用擴充套件來做到 |
|
| 發表人: | 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 寫:
=========== 路過.... 原來你有上epc啊! 我是該壇會員firefox啊 |
|
| 第 1 頁 (共 2 頁) | 所有顯示的時間為 UTC + 8 小時 |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|