@ डेविडपोस्टिल के नोटिस के बाद, मैंने पृष्ठ संरचना पर फिर से गौर किया। ऐसा प्रतीत होता है कि पाठ विज्ञापन बाहर चले गए हैं div.spon_links
जब एडब्लॉक एज सक्षम किया जाता है जिसके पास वास्तव में फ़िल्टरिंग नियम है spon_links
। चाहे यह एडब्लॉक एज का दुर्व्यवहार हो या स्टार्टपेज से कुछ जवाबी कार्रवाई मुझे पता नहीं है।
वहाँ एक कस्टम Greasemonkey स्क्रिप्ट जोड़ने की तुलना में एक सरल उपाय है - बस uBlock के लिए Adblock Edge गमागमन भी समस्या का हल।
आगे की जांच पर, विज्ञापन केवल तब तक गायब हो जाते हैं जब Adblock Edge पूरी तरह से उसी समय अक्षम हो जाता है ("हर जगह अक्षम करें")। यहां तक कि अगर मैं इसे केवल स्टार्टपेज ("स्टार्टपेज पर अक्षम करें") के लिए अक्षम करता हूं, तो साइट विज्ञापनों को बाहर ले जाती है spon_links
कंटेनर। मेरी व्याख्या यह है कि प्रारंभ पृष्ठ किसी तरह मेरी ऐड-ऑन वरीयताओं और जांच का उपयोग करने का प्रबंधन करता है यदि एडब्लॉक आमतौर पर सक्षम है । यह बुरा हो सकता है ?!
Greasemonkey के डेविड के दृष्टिकोण का उपयोग करना और removeChild
, मैं निम्नलिखित समाधान के साथ आया था जो अभी भी काम करता है जब एडब्लॉक एज स्थापित होता है। ऐसा लगता है कि किसी को पेज को तब तक इंतजार करना पड़ता है जब तक कि पेज लोड नहीं हो जाता है और विज्ञापन-ब्लॉक से बचता है, जब तक कि आप अंत में आपत्तिजनक तत्वों का पता नहीं लगा सकते और हटा सकते हैं:
// ==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);
(क्षमा करें, मेरा जावास्क्रिप्ट थोड़ा कठोर है, शायद jQuery के साथ आसान है।)