Автор Сообщение
chAlx
СообщениеДобавлено: Чт, Июл 28 2011 23:01   Заголовок сообщения:

Версия посвежее (в частности, не мешает логину ВКонтакте):

Код:
Name = "Kill JavaScript Banners {^sites} [ALX]"
Active = TRUE
URL = "(^( forum.ixbt.com/ | (www.|)3dnews.ru/ | ([^/]++.|)timezero.ru/ | vk.com/(^?) | vkontakte.ru/(^?) ))"
Bounds = "$NEST(<script*>,\0,</script>)( $NEST(<noscript>,</noscript>)|)"
Limit = 6000
Match = "$NEST(<script,>)"
        "*"
        "("
        "://$LST(AdList)|"
        "adclick|"
        "adcycle|"
        ".submit\(*focus\(|"
        "super_flashFileURL|"
        "banner_height|"
        "<iframe|"
        ""<" \+ "if" \+ "RaMe|"
        "'ht'\+|"
        "aa4_show|"
        ""<sc" \+ "ript|"
        ""<scr" \+ "ipt|"
        "<script*<script|"
        "%3Cscript|"
        "d.write\( ("--"\+">") | ("<"\+"!-- ") \)"
        "googleAddAdSenseService"
        ")\1"
        "*"
Replace = "<script title=JS_Banner_blocked language=ShonenScript>"
          "busted= [$ESC(\1)]"
          "\0"
          "</script>"
chAlx
СообщениеДобавлено: Чт, Янв 22 2009 11:01   Заголовок сообщения:

1ik писал(а):
в другом скрипте функцию могут назвать не так понятно

Ну и пусть, зато однозначно: Math.random() всё же общеупотребительная функция и может использоваться вполне легально (например, в визуальных эффектах и играх). А в других скриптах другими фильтрами почистить можно.

Впрочем, кому что нравится: чем более общие фильтры, тем больше ложных срабатываний, зато меньше возни с рекламой.
1ik
СообщениеДобавлено: Чт, Янв 22 2009 06:21   Заголовок сообщения:

chAlx писал(а):
простое и понятное, типа "function initBanners()"

в другом скрипте функцию могут назвать не так понятно
chAlx
СообщениеДобавлено: Ср, Янв 21 2009 13:27   Заголовок сообщения:

Nan0miT:

Конкретно для данного типа скриптов я бы завязался на что-то простое и понятное, типа "function initBanners()". Это если оно ещё где-то встречается (если нет -- в AdList).
Nan0miT
СообщениеДобавлено: Ср, Янв 21 2009 04:34   Заголовок сообщения:

1ik писал(а):
Nan0miT
конкретно этот скрипт проще зарезать по URL , раз уж он известен.
А другие подобные (если они существуют), имхо аккуратнее по Math.random()


Math.random есть не всегда. Поищу еще примеры.
1ik
СообщениеДобавлено: Ср, Янв 21 2009 00:52   Заголовок сообщения:

Nan0miT
конкретно этот скрипт проще зарезать по URL , раз уж он известен.
А другие подобные (если они существуют), имхо аккуратнее по Math.random()
Nan0miT
СообщениеДобавлено: Вт, Янв 20 2009 20:52   Заголовок сообщения:

Встретил вариант добавления баннеров через addEvent().

Сам скрипт можно посмотреть здесь:
http://www.developers.org.ua/static/js/spt.js

Баннеры добавляются в определенные дивы на странице при загрузке строкой: addEvent(window, 'load', функция);

Можно исключать их для каждого сайта отдельно, фильтром типа:
Код:
[Patterns]
Name = "Script Events 200109 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)developers.org.ua/"
Limit = 256
Match = "(addEvent(\s|)\((\s|)window(\s|),(\s|)'load')\1"
Replace = "// \1"



Но может есть решение получше?
chAlx
СообщениеДобавлено: Вс, Янв 18 2009 14:15   Заголовок сообщения:

Обновлённая версия:

Код:
Name = "Kill JavaScript Banners {^sites} [ALX]"
Active = TRUE
URL = "(^( forum.ixbt.com/ | (www.|)3dnews.ru/ | ([^/]++.|)timezero.ru/ | [^./]+.fastbb.ru/index.pl) )"
Bounds = "$NEST(<script*>,\0,</script>)( $NEST(<noscript>,</noscript>)|)"
Limit = 6000
Match = "$NEST(<script,>)"
        "*"
        "("
        "://$LST(AdList)|"
        "adclick|"
        "adcycle|"
        ".submit\(*focus\(|"
        "super_flashFileURL|"
        "banner_height|"
        "<iframe|"
        ""<" \+ "if" \+ "RaMe|"
        "'ht'\+|"
        "aa4_show|"
        ""<sc" \+ "ript|"
        ""<scr" \+ "ipt|"
        "<script*<script|"
        "%3Cscript|"
        "d.write\( ("--"\+">") | ("<"\+"!-- ") \)"
        ")\1"
        "*"
Replace = "<script title=JS_Banner_blocked language=ShonenScript>"
          "busted= [$ESC(\1)]"
          "\0"
          "</script>"
chAlx
СообщениеДобавлено: Вт, Июн 06 2006 21:20   Заголовок сообщения:

Млин, опять не из той версии переделал фильтр.. Исправил.

Изначально <noscript> придумала Netscape как расширение для HTML3:
Цитата:
NOSCRIPT
(alternative text for JavaScript)
The NOSCRIPT tag specifies the content for a browser to display when JavaScript is not available or enabled.

Поэтому так и повелось в браузерах.. Возможно даже, что обработка этого тега зависит от указанного для документа Doctype.

IMHO довести идею следования стандартам до абсурда стало реально сравнительно недавно, когда довели до ума CSS2. Тогда Опера на это и пошла (что-то около 7-й версии).

А Мозилла в этом смысле идёт каким-то своим путём: вроде и стандартов придерживаются, но некоторые устоявшиеся правила не меняют (хотя это больше относится к quirks mode -- версия рендеринга для кривого кода).

Вот интересное обсуждение по этому поводу (началось как раз из-за скриптов счётчика).
Unknown Mystic
СообщениеДобавлено: Вт, Июн 06 2006 18:39   Заголовок сообщения:

Ну не знаю... Помоему он на то и <noscript>, чтоб использоваться, если не известно что со скриптом делать...
А кстати вот:

from HTML 4.01 Specification:
The NOSCRIPT element allows authors to provide alternate content when a script is not executed. The content of a NOSCRIPT element should only be rendered by a script-aware user agent in the following cases:
* The user agent is configured not to evaluate scripts.
* The user agent doesn't support a scripting language invoked by a SCRIPT element earlier in the document.

User agents that do not support client-side scripts must render this element's contents.
chAlx
СообщениеДобавлено: Вт, Июн 06 2006 18:15   Заголовок сообщения:

Хм.. Да, пожалуй, рендерить ли браузеру ноускрипт после скрипта на неизвестном языке -- вопрос неоднозначный. Кто бы мог подумать..

Сделал, как предлагалось:

Код:
Name = "Kill JavaScript Banners {^sites} [ALX]"
Active = TRUE
URL = "(^( forum.ixbt.com/ | (www.|)3dnews.ru/ | ([^/]++.|)timezero.ru/ ) | ([^./]+.fastbb.ru/index.pl) )"
Bounds = "$NEST(<script*>,\0,</script>)( $NEST(<noscript>,</noscript>)|)"
Limit = 4096
Match = "$NEST(<script,>)"
        "*"
        "("
        "://$LST(AdList)|"
        "adclick|"
        "adcycle|"
        ".submit\(*focus\(|"
        "super_flashFileURL|"
        "banner_height|"
        "<iframe|"
        "'ht'\+|"
        "aa4_show|"
        ""<sc" \+ "ript|"
        ""<scr" \+ "ipt|"
        "<script*<script|"
        "d.write\( ("--"\+">") | ("<"\+"!-- ") \)"
        ")\1"
        "*"
Replace = "<script title=JS_Banner_blocked language=ShonenScript>"
          "busted= [$ESC(\1)]"
          "\0"
          "</script>"
lexxICON
СообщениеДобавлено: Вт, Июн 06 2006 18:01   Заголовок сообщения:

я так думал, что <script title=JS_Banner_blocked language=ShonenScript> за скрипт не считается, а отображение <noscript> так вообще определяется браузером afaik глобально, а глобально у меня js включены
Unknown Mystic
СообщениеДобавлено: Вт, Июн 06 2006 17:05   Заголовок сообщения:

Это почему это не должен? Как раз очень даже должен. Собственно для того тэг <noscript> и существует, чтоб выполнятся, если не возможно выполнить скрипт...
lexxICON
СообщениеДобавлено: Вт, Июн 06 2006 16:52   Заголовок сообщения:

chAlx писал(а):
Приведите уже пример кода, который неправильно обрабатывается. У меня все сайты с примерами прочищаются нормально.

Причём тут <noscript>? Если проблема в том, что он не вырезается -- так и пусть себе. Содержимое этого тега обрабатывается примерно так же, как содержимое <script language=ShonenScript>.

Видимо проблема в том, что браузер Опера (8) обрабатывает следующий код, хотя по идее, как я понимаю, не должен.
Код:
<script title=JS_Banner_blocked language=ShonenScript>busted= [%3Ciframe]
// <!--
var rbn_login = "ino_slot_150x80_3";
var rbn_options = "";
var rbn_random = Math.round(Math.random() * 100000);
document.write('<iframe src="http://rotabanner.rian.ru/cgi-bin/iframe/'+rbn_login+'?'+rbn_random +'&'+rbn_options+'" marginwidth=0 marginheight=0 scrolling=no frameborder=0 width=150 height=80><a href="http://rotabanner.rian.ru/cgi-bin/href/'+rbn_login+'?'+rbn_random +'" target=_top><img src="http://rotabanner.rian.ru/cgi-bin/banner/'+rbn_login+'?'+rbn_random +'&'+rbn_options+'" alt="Баннерообменная сеть РИА Новости" border=0 ismap width=150 height=80></a></iframe>');
// -->
</script>

<noscript>
<iframe src="http://rotabanner.rian.ru/cgi-bin/iframe/ino_slot_150x80_3" marginwidth=0 marginheight=0 scrolling=no frameborder=0 width=150 height=80><a href="http://rotabanner.rian.ru/cgi-bin/href/ino_slot_150x80_3" target=_top><img src="http://rotabanner.rian.ru/cgi-bin/banner/ino_slot_150x80_3" alt="Баннерообменная сеть РИА Новости" border=0 ismap width=150 height=80></a></iframe>
</noscript>
chAlx
СообщениеДобавлено: Вт, Июн 06 2006 09:32   Заголовок сообщения:

Приведите уже пример кода, который неправильно обрабатывается. У меня все сайты с примерами прочищаются нормально.

Причём тут <noscript>? Если проблема в том, что он не вырезается -- так и пусть себе. Содержимое этого тега обрабатывается примерно так же, как содержимое <script language=ShonenScript>.
Unknown Mystic
СообщениеДобавлено: Сб, Май 27 2006 14:57   Заголовок сообщения:

Мда... перемудрил малость chAlx. Это я его видимо сбил :)

Замени границы на
Код:
$NEST(<script,\2,</script>)( $NEST(<noscript>,</noscript>)|)


А замену на:
Код:
<script title=JS_Banner_blocked language=ShonenScript>
busted= [$ESC(\1)]
\2
</script>


Это так - по простому, а вообще то просто надо чтоб не запоминался фрагмент из noscript
lexxICON
СообщениеДобавлено: Пн, Май 22 2006 11:59   Заголовок сообщения:

chAlx, а в фильтре границы задавать <noscript></noscript> необходимо?
Я почему спрашиваю - заметил, что с noscript стал пропускаться счетчик от spylog и все банеры слепленные по тому же типу: скрипт+носкрипт(айфрейм)

Вот наглядный пример http://www.inosmi.ru/stories/01/06/28/3008/227319.html - приходится либо убирать <noscript></noscript> либо включать multiple matches
Unknown Mystic
СообщениеДобавлено: Вт, Май 16 2006 10:45   Заголовок сообщения:

Вообще-то он у меня и без последнего изменения работал...
chAlx
СообщениеДобавлено: Пн, Май 15 2006 19:24   Заголовок сообщения:

lexxICON:

Ссылки надо приводить! Пока найдёшь, кто из них страницы-ответы..

Фильтр в последнем посте обновил, он ещё и был создан не из самой свежей версии. ФастББ опять извратился, как никто: засунули рекламу в тот же скрипт, что и нормальный JS-код.
lexxICON
СообщениеДобавлено: Пн, Май 15 2006 17:45   Заголовок сообщения:

Kill JavaScript Banners {^sites} [ALX] на страницах-ответах ( [^.]+.fastbb.ru/index.pl ) гостевых прячет форму ответа.

Kill fastbb JavaScript banners [ALX] не срабатывает нигде, видимо уже не нужен

P o w e r e d b y p h p B B© p h p B B G r o u p