Автор |
Сообщение |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Добавил строчку для подчистки следов счётчиков:
Код: |
Name = "Kill JavaScript Banners {^sites} [ALX]"
Active = TRUE
URL = "(^( forum.ixbt.com/ | (www.|)3dnews.ru/ | ([^/]++.|)timezero.ru/ ) | ([^./]+.fastbb.ru/index.pl) )"
Bounds = "$NEST(<script,</script>)( $NEST(<noscript>,</noscript>)|)"
Limit = 4096
Match = "$NEST(<script,>)"
"\0"
"("
"://$LST(AdList)|"
"adclick|"
"adcycle|"
".submit\(*focus\(|"
"super_flashFileURL|"
"banner_height|"
"<iframe|"
"'ht'\+|"
"aa4_show|"
""<sc" \+ "ript|"
""<scr" \+ "ipt|"
"<script*<script|"
"d.write\( ("--"\+">") | ("<"\+"!-- ") \)"
")\1"
"\9"
Replace = "<script title=JS_Banner_blocked language=ShonenScript>"
"busted= [$ESC(\1)]"
"\0\1\9" |
|
Последний раз редактировалось: chAlx (Пн, Май 15 2006 19:24), всего редактировалось 2 раз(а) |
|
К началу |
Профиль Сообщение |
 |
lexxICON
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596
|
Kill JavaScript Banners {^sites} [ALX] на страницах-ответах ( [^.]+.fastbb.ru/index.pl ) гостевых прячет форму ответа.
Kill fastbb JavaScript banners [ALX] не срабатывает нигде, видимо уже не нужен
|
|
|
К началу |
Профиль Сообщение Отправить e-mail |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
lexxICON:
Ссылки надо приводить! Пока найдёшь, кто из них страницы-ответы..
Фильтр в последнем посте обновил, он ещё и был создан не из самой свежей версии. ФастББ опять извратился, как никто: засунули рекламу в тот же скрипт, что и нормальный JS-код.
|
|
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Вообще-то он у меня и без последнего изменения работал...
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
lexxICON
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596
|
chAlx, а в фильтре границы задавать <noscript></noscript> необходимо?
Я почему спрашиваю - заметил, что с noscript стал пропускаться счетчик от spylog и все банеры слепленные по тому же типу: скрипт+носкрипт(айфрейм)
Вот наглядный пример http://www.inosmi.ru/stories/01/06/28/3008/227319.html - приходится либо убирать <noscript></noscript> либо включать multiple matches
|
|
|
К началу |
Профиль Сообщение Отправить e-mail |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Мда... перемудрил малость chAlx. Это я его видимо сбил :)
Замени границы на
Код: |
$NEST(<script,\2,</script>)( $NEST(<noscript>,</noscript>)|) |
А замену на:
Код: |
<script title=JS_Banner_blocked language=ShonenScript>
busted= [$ESC(\1)]
\2
</script> |
Это так - по простому, а вообще то просто надо чтоб не запоминался фрагмент из noscript
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Приведите уже пример кода, который неправильно обрабатывается. У меня все сайты с примерами прочищаются нормально.
Причём тут <noscript>? Если проблема в том, что он не вырезается -- так и пусть себе. Содержимое этого тега обрабатывается примерно так же, как содержимое <script language=ShonenScript>.
|
|
|
К началу |
Профиль Сообщение |
 |
lexxICON
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596
|
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> |
|
|
|
К началу |
Профиль Сообщение Отправить e-mail |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Это почему это не должен? Как раз очень даже должен. Собственно для того тэг <noscript> и существует, чтоб выполнятся, если не возможно выполнить скрипт...
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
lexxICON
Platinum Member


Зарегистрирован: 13.07.2004
Сообщения: 596
|
я так думал, что <script title=JS_Banner_blocked language=ShonenScript> за скрипт не считается, а отображение <noscript> так вообще определяется браузером afaik глобально, а глобально у меня js включены
|
|
|
К началу |
Профиль Сообщение Отправить e-mail |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Хм.. Да, пожалуй, рендерить ли браузеру ноускрипт после скрипта на неизвестном языке -- вопрос неоднозначный. Кто бы мог подумать..
Сделал, как предлагалось:
Код: |
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>" |
|
Последний раз редактировалось: chAlx (Вт, Июн 06 2006 20:44), всего редактировалось 1 раз |
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Ну не знаю... Помоему он на то и <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.
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Млин, опять не из той версии переделал фильтр.. Исправил.
Изначально <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 -- версия рендеринга для кривого кода).
Вот интересное обсуждение по этому поводу (началось как раз из-за скриптов счётчика).
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Обновлённая версия:
Код: |
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>"
|
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
Встретил вариант добавления баннеров через 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"
|
Но может есть решение получше?
|
|
|
К началу |
Профиль Сообщение |
 |
1ik
Junior Member

Зарегистрирован: 05.01.2009
Сообщения: 25
|
Nan0miT
конкретно этот скрипт проще зарезать по URL , раз уж он известен.
А другие подобные (если они существуют), имхо аккуратнее по Math.random()
|
|
|
К началу |
Профиль Сообщение |
 |
Nan0miT
Platinum Member

Зарегистрирован: 11.10.2006
Сообщения: 315
|
1ik писал(а): |
Nan0miT
конкретно этот скрипт проще зарезать по URL , раз уж он известен.
А другие подобные (если они существуют), имхо аккуратнее по Math.random() |
Math.random есть не всегда. Поищу еще примеры.
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Nan0miT:
Конкретно для данного типа скриптов я бы завязался на что-то простое и понятное, типа "function initBanners()". Это если оно ещё где-то встречается (если нет -- в AdList).
|
|
|
К началу |
Профиль Сообщение |
 |
1ik
Junior Member

Зарегистрирован: 05.01.2009
Сообщения: 25
|
chAlx писал(а): |
простое и понятное, типа "function initBanners()" |
в другом скрипте функцию могут назвать не так понятно
|
|
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
1ik писал(а): |
в другом скрипте функцию могут назвать не так понятно |
Ну и пусть, зато однозначно: Math.random() всё же общеупотребительная функция и может использоваться вполне легально (например, в визуальных эффектах и играх). А в других скриптах другими фильтрами почистить можно.
Впрочем, кому что нравится: чем более общие фильтры, тем больше ложных срабатываний, зато меньше возни с рекламой.
|
|
|
К началу |
Профиль Сообщение |
 |
|