8

Я попробовал следующее, это не имеет никакого эффекта:

startpage.com##[style*="background-color:#F5F9FF;"]

Есть идеи, как это решить?

Воспроизвести: перейдите по адресу https://startpage.com/do/search - найдите, например, adblock . Вверху и внизу страницы вы увидите противные голубые прямоугольники с надписью «Реклама, связанная с рекламным блоком»:

Это с Iceweasel (Firefox 38.2.1) и Adblock Edge 2.1.9.1.


Если это невозможно, какие безопасные / уважающие конфиденциальность сайты без рекламы вы бы порекомендовали в качестве альтернативы IxQuick и Startpage?

4 ответа4

6

Есть идеи, как это решить?

Рассматриваемые объявления находятся в div с идентификатором "spon_links".

<div id="spon_links">

Вы можете использовать скрипт Greasemonkey, чтобы удалить эти div.


Решение 1

Это подтверждается как работа в Firefox при использовании рекламного блокировщика uBlock Origin.

// ==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.

Пример: удалить боковую панель рекламы

Это предполагает наличие элемента с идентификатором "ads".

var adSidebar = document.getElementById('ads');
if (adSidebar) {
    adSidebar.parentNode.removeChild(adSidebar);
}

Удаление элемента с removeChild также удалит весь контент внутри него. Например, если вы удалите элемент <table> , он также удалит все его ячейки таблицы (элементы <td> ).

Источник 4.9.Удаление элемента

2

После уведомления @ DavidPostill я снова посмотрел на структуру страницы. Похоже, что текстовые объявления перемещаются за пределы div.spon_links когда Adblock Edge включен, который действительно имеет правило фильтрации для spon_links . Является ли это неправильным поведением Adblock Edge или каким-либо противодействием со стартовой страницы, я не знаю.

Существует более простое решение, чем добавление пользовательского скрипта Greasemonkey - простая замена Adblock Edge на uBlock также решила проблему.


При дальнейшем расследовании реклама исчезает только при включенном uBlock, когда Adblock Edge полностью отключен одновременно ("Отключить везде"). Даже если я отключу его только для стартовой страницы («Отключить на startpage.com»), сайт переместит рекламу за пределы контейнера spon_links . Я объясняю это тем, что стартовой странице каким-то образом удается получить доступ к моим настройкам надстроек и проверить, включен ли вообще Adblock . Может ли это быть так противно ?!


Используя подход Дэвида 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.)

0

В AdblockPro я смог заблокировать div, добавив это правило:

startpage.com###sponsored_csa1

Я использовал помощник скрытия элементов ABP, чтобы выбрать для меня родительский элемент div, и принял правило по умолчанию.

AdBlock Edge - это форк ABP, так что я бы ожидал, что там будет работать правило и в ABE. Однако ABE был прекращен его разработчиком, поэтому вам действительно нужно либо вернуться к ABP (и просто отключить приемлемую функцию рекламы), либо переключиться на uBlock.

uBlock может быть лучшим выбором и с технической точки зрения; он должен иметь меньшую нагрузку на память / процессор в FF, чем ABP. Он также полностью работает с предстоящим обновлением электролиза для Firefox, которое разделяет пользовательский интерфейс и вкладки верхнего уровня на отдельные процессы и запускает последний в более строго ограниченных настройках, что должно затруднить использование его авторами вредоносных программ (IE и Chrome сделали это для года). Это потенциально еще в конце года. (FF43 / Dec 14 был их целевой датой некоторое время; если они сделают это, это зависит от того, насколько хорошо выглядит телеметрия в сборках альфа / бета и насколько мало открытых ошибок.)

0

Измените расширение для блокировки рекламы на uBlock Origin. Страница отображается нормально и без рекламы в uBlock Origin с Firefox 41.0 или Chrome 44.0.2403.155 m.

снимок экрана страницы результатов поиска startpage.com в Firefox 41 с источником uBlock

Включите фильтры из «Fanboy +Easylist-Merged Ultimate List» (уже содержит списки EasyList, EasyPrivacy, Enhanced Tracking, Annoyance и Social Blocking, поэтому нет необходимости также включать эти списки фильтров).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .