@DavidPostill의 통지에 따라 페이지 구조를 다시 살펴 보았습니다. 텍스트 광고 div.spon_links
는에 대한 필터링 규칙이있는 애드 블록 에지가 활성화 된 경우 외부로 이동 한 것으로 보입니다 spon_links
. 이것이 Adblock Edge의 오작동인지 또는 시작 페이지의 일부 반작용인지 모르겠습니다.
사용자 정의 Greasemonkey 스크립트를 추가하는 것보다 간단한 솔루션이 있습니다. 간단히 uBlock 용 Adblock Edge를 교체하면 문제가 해결됩니다.
추가 조사에서 Adblock Edge가 동시에 완전히 비활성화 된 경우 ( "모든 곳에서 비활성화") uBlock이 활성화 된 상태에서만 광고가 사라집니다. 시작 페이지에 대해서만 사용 중지 ( "startpage.com에서 사용 중지")하더라도 사이트는 spon_links
컨테이너 외부로 광고를 이동합니다 . 내 설명은 시작 페이지가 어떻게 든 추가 기능 환경 설정에 액세스하고 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를 사용하면 더 쉽습니다.)