我嘗試了以下方法,沒有效果:
startpage.com##[style*="background-color:#F5F9FF;"]
知道如何解決這個問題嗎?
重現:轉到https://startpage.com/do/search- 搜尋例如adblock
.您會在頁面頂部和底部看到令人討厭的淺藍色框,上面寫著「與 adblock 相關的廣告」:
這是 Iceweasel (Firefox 38.2.1) 和 Adblock Edge 2.1.9.1 的情況。
如果不可能,您推薦哪些安全/尊重隱私且無廣告的網站作為 IxQuick 和 Startpage 的替代網站?
答案1
知道如何解決這個問題嗎?
相關廣告位於 ID 為「spon_links」的 div 中。
<div id="spon_links">
您可以使用油猴刪除這些 div 的腳本。
解決方案1
當使用 uBlock Origin 廣告攔截器時,這已被確認在 Firefox 中有效。
// ==UserScript==
// @name startpage.com remove ads
// @namespace startpage.com
// @description Removes ads from startpage.com before they are displayed.
// @include https://startpage.com/*
// @include https://*.startpage.com/*
// @run-at document-start
// @version 2015-09-29
// @grant GM_addStyle
// ==/UserScript==
GM_addStyle("div#spon_links { display: none !important}");
解決方案2
未測試。
在下面的範例腳本中替換'ads'
為。'spon_links'
4.9.刪除一個元素
您可以使用 Greasemonkey 的removeChild 函數一次刪除頁面的整個區塊。
範例:刪除廣告側邊欄
這假定存在一個 ID 為「ads」的元素。
var adSidebar = document.getElementById('ads'); if (adSidebar) { adSidebar.parentNode.removeChild(adSidebar); }
刪除一個元素
removeChild
也會刪除其中的所有內容。例如,如果刪除一個<table>
元素,這也會刪除其所有表格儲存格(<td>
元素)。
答案2
目前新增:
startpage.com##.clicktrackedAd_js
我的 uBlock Orgin 過濾器清單完成了這項工作。不再出現廣告搜尋結果。
答案3
根據@DavidPostill 的通知,我再次查看了頁面結構。看起來,div.spon_links
當啟用 Adblock Edge 時,文字廣告被移到了外面,而 Adblock Edge 確實有一個過濾規則spon_links
。我不知道這是 Adblock Edge 的不當行為還是 Startpage 的一些反制措施。
有一個比添加自訂 Greasemonkey 腳本更簡單的解決方案 - 只需將 Adblock Edge 替換為 uBlock 也可以解決該問題。
經過進一步調查,只有在 Adblock Edge 同時完全停用(「停用各處」)時,啟用 uBlock 後廣告才會消失。即使我僅對 Startpage 停用它(「在 startpage.com 上停用」),該網站也會將廣告移到spon_links
容器之外。我的解釋是Startpage 以某種方式設法存取我的附加元件首選項並檢查 Adblock 是否已啟用。能有這麼噁心嗎?
使用 David 的 Greasemonkey 方法和removeChild
,我想出了以下解決方案,該解決方案在安裝 Adblock Edge 後仍然有效。似乎必須等到頁面加載並嘗試避免廣告攔截,直到您最終可以找到並刪除有問題的元素:
// ==UserScript==
// @name startpage/ixquick remove ads
// @namespace startpage.com
// @description Removes ads from startpage/ixquick before they are displayed.
// @include https://startpage.com/*
// @include https://*.startpage.com/*
// @include https://ixquick.com/*
// @include https://*.ixquick.com/*
// @run-at document-end
// @grant none
// @version 2015-09-29
// ==/UserScript==
var fun = function() {
var results = document.getElementById('bottom-result-container');
if (results) {
var ols = results.getElementsByTagName('ol');
for (i = 0; i < ols.length; i++) {
var ol = ols[i];
var ps = ol.getElementsByTagName('p');
for (j = 0; j < ps.length; j++) {
var p = ps[j];
if (p.className == 'head2') {
var spans = p.getElementsByTagName('span');
for (k = 0; k < spans.length; k++) {
if (spans[k].innerHTML.contains("Ads related to")) {
ol.innerHTML = '';
}
}
}
}
}
}
};
setTimeout(fun, 1);
(抱歉,我的 JavaScript 有點生疏,使用 jQuery 可能會比較容易。)
答案4
在 AdblockPro 中,我可以透過新增以下規則來封鎖 div:
startpage.com###sponsored_csa1
我使用 ABP Element Hiding Helper 為我選擇父 div 並接受其預設規則。
AdBlock Edge 是 ABP 的分支,因此我希望那裡的規則也適用於 ABE。然而ABE已經已停產由它的開發者設計,所以你真的應該回到 ABP(並關閉可接受的廣告功能)或切換到 uBlock。
從技術角度來看,uBlock 也可能是更好的選擇; FF 中的記憶體/CPU 負載應該比 ABP 更輕。它也完全適用於即將推出的電解Firefox 的更新將頂級 UI 和選項卡拆分為單獨的進程,並在更嚴格的限制下運行後者,這將使惡意軟體作者更難利用(IE 和 Chrome 多年來一直這樣做)。預計最快可能在今年底發布。 (FF43/12 月 14 日一直是他們的目標日期;他們是否能實現這一目標取決於 alpha/beta 版本中的遙測效果如何以及未解決的錯誤數量有多少。)