Не совсем корректная фильтрация

Discussion in 'Собственные правила фильтрации' started by Vipe, Oct 4, 2014.

  1. Vipe

    Vipe New Member

    Joined:
    Oct 4, 2014
    Messages:
    3
    Рассмотрим правило:
    Code:
    <table style="background: url('http://domain.com/banner.gif')">
        <tr>
            <td>
                <a href="http://pelmeshki.com">Купил пельмешки БЫСТРО</a>
            </td>
        </tr>
    </table>
    согласно правилу
    $$a[href="pelmeshki.com"][parent-elements="table"]
    таблица скроется.
    Но, если эта таблица, предположим, содержит еще одну или несколько
    строк (TR), внутри которых еще таблица/таблицы с текстом, то эти вложенные
    таблицы останутся. Или целиком или их части.
    Можно ли это как-то поправить, чтобы удалялась вся таблица, со всем
    содержимым, даже если его много?
    Или можно сделать так чтобы "исходной" родительской таблице присваивался
    какой-то класс/стиль, который бы её скрывал средствами самого браузера.
     
  2. avatar

    avatar Administrator Staff Member Administrator

    Joined:
    Oct 26, 2010
    Messages:
    12,891
    Вот странно, если удаляется таблица, то и все ее внутренности должны быть удалены.

    Описываемое вами поведение возможно если HTML на странице не валидный, тогда возможны проблемы при удалении.

    А можете живой пример показать, на котором у вас получается такое неправильное поведение?
    Будет проще подобрать подходящее решение.
     
  3. Vipe

    Vipe New Member

    Joined:
    Oct 4, 2014
    Messages:
    3
    Признаюсь, я использовал AdGuard не совсем в тех целях, что он изначально задумывался.
    А именно для реализации функции игнора на форуме.
    И он вполне справляется кроме некоторых случаев:

    например http://yarportal.ru/topic657284.html

    фильтр
    yarportal.ru$$a[href="138933"][parent-elements="tr"][parent-search-level="5"]

    находит пользователя с этим номером по ссылке на его профиль и удаляет всю строку с сообщением, оставляя тем не менее "заголовок" сообщения.
    Таким образом легко отслеживать, что пользователь что-то писал, и что сообщение удалено.

    Например, сообщение
    http://yarportal.ru/topic657284.html#entry20918971
    успешно удалено

    А от http://yarportal.ru/topic657284s15.html?#entry20919005
    остались куски, т.к. использовались вложенные таблицы для организации "цитирования".

    То же самое с попыткой удалить всю таблицу с сообщением по фильтру
    yarportal.ru$$a[href="superden"][parent-elements="table"][parent-search-level="5"]
     
  4. avatar

    avatar Administrator Staff Member Administrator

    Joined:
    Oct 26, 2010
    Messages:
    12,891
    Там при цитировании на сайте невалидный HTML формируется, из-за этого правило неправильно отрабатывает.

    Такие штуки лучше в виде пользовательских скриптов оформлять.
    Если появится свободная минутка, накидаю пример.
     
  5. Vipe

    Vipe New Member

    Joined:
    Oct 4, 2014
    Messages:
    3
    Было бы здорово.
    В скриптах я не очень. Мягко говоря.

    UPD. Не важно. Сам написал )))
     
    Last edited by a moderator: Oct 13, 2014
  6. avatar

    avatar Administrator Staff Member Administrator

    Joined:
    Oct 26, 2010
    Messages:
    12,891
    Ух, простите за тормоза, я зашился немного с андроид-версией.