Меняем IP адресДля того чтобы изменить IP адрес необходимо использовать анонимный иностранный прокси сервер. Итак, приступим: |
Убираем рекламу с бесплатных сайтовПрежде чем начать рассмотрение всех возможных способов борьбы с баннерами, следует обратиться к тем, кто, собственно, предоставляет услуги бесплатного хостинга. Почему пользователи избавляются от баннеров? Потому что они неудобны. К тому же ни один пользователь не будет щёлкать на назойливый баннер, который «липнет» к краю окна или «всплывает». Чтобы никто не пытался избавиться от баннеров, следует разрешить веб–мастеру самому решать, куда их ставить. Либо просто располагать их внизу с возможностью их прокрутки. Если же подобные условия веб–мастерам не предоставляются, тогда приходится «отключать» баннеры. Нижеследующие советы помогут убрать любой баннер владельцам сайтов практически на всех хостингах, включая narod.ru и ucoz.ru Вставку «постороннего» кода можно смело разделить на два типа: вставка перед исходным документом (перед тэгом <html> и !DOCTYPE) и вставка после исходного документа (после тэга </html>). Хостер в таком случае делает наш код несоответствующим стандартам. Код перед исходным документом достаточно легко обходится в некоторых случаях, например, когда явно указывается идентификатор элемента:
Quote <div id=’banner’> <!— SOME CODE –> </div> Тогда достаточно с помощью правил CSS переопределить свойства элемента:
Quote #banner { display: none !important; position: absolute; height: 1px !important; width: 1px !important; overflow: hidden } Здесь мы на всякий случай «превращаем» баннер в точку, размером в один пиксель, и делаем его невидимым, указав свойство display: none. Правило !important используется для перекрытия возможных заданных стилей. Однако если идентификатор не указан явно, или используются встроенные стили, тогда просто так такой баннер не выключить. Если это обычная картинка вверху, тогда его можно «прикрыть» любым элементом, указав ему ширину, равную ширине баннера (для примера, возьмём 48 пикселей):
Quote <body> <div id='root'> </div> <!–– *** –> #root Здесь следует задать элементу фон страницы. Однако это не очень хороший способ. Тем более, если код перед основным достаточно сложный и стили не удаётся перекрыть, тогда на помощь приходит «родной» JavaScript. С его помощью мы можем: * «выключить» любой элемент, если известен его идентификатор
Quote document.getElementById('banner').style.display = 'none'; //(если код находится перед основным, достаточно расположить JS–код между тэгами <head>); * обойти все узлы средствами DOM, удалить любой интересующий нас узел; Мы же используем самый простой и эффективный способ – удаление узла из дерева элементов HTML. Для его применения достаточно написать в тэге <body> следующее:
Quote <body onLoad=’unbanner();’> Текст функции приведён ниже:
Quote function unbanner() { var len = 0; document.body.childNodes.item(len).innerHTML = ''; document.body.childNodes.item(len).style.display = 'none'; } * кроме того, мы можем «перекрыть» любые js–свойства, например, onload, onscroll, onclick. Как известно, событию можно назначить только один обработчик. Исходя из этого, можно создать «пустую» или, в случае, если вы используете эти события, собственную функцию и «переназначить» обработчики.
Quote onload = myfunc; onscroll = myscroll; onclick = myclick; // Здесь myfunc(), myscroll(), myclick() - собственные функции Гораздо проще обстоят дела с теми баннерами и кодом, которые вставляются после основного текста (после тэга </body> или </html>). Возможно, вы замечали, что часто перед кодом, хостеры вставляют множество закрывающих тэгов, например: Мягко говоря, не убедительная защита. Во–первых, мы вправе поставить любой тэг, и обозначить его невидимым. Я однажды делал так:
Quote <b style='display: none'> </body> </html> <!— BANNER CODE –> Не совсем изящно, но зато работало. Итак, мы вправе поставить любой HTML элемент, хоть <i> или <acronym>. Все HTML–элементы хостер явно перечислять не будет. Но дело даже не в этом. Хостер забывает о таком замечательном понятии, как каскад:
Quote /* CSS */ #first, #first * {display: none !important} #second, #second * {display: none !important} <!-- HTML --> <div id='first'> <div id='second'> </body> </html> <!— здесь хостер вставляет свой злобный код –> </div></table> Как мы видим, если элемент second (выделен жирным) оказался закрытым с помощью кода хостера, то элемент first продолжает действовать и скроет баннер. К тому же, часто баннер всё же содержит id, и поэтому любое правило можно перекрыть:
Quote #first #second #third #banner { display: none !important; visibility: hidden !important } Если же снова удалить баннер не получается, от него всегда можно избавиться с помощью JavaScript. Для этого в функцию unbanner(), уже рассмотренную выше, достаточно внести изменение всего в одну строчку:
Quote var len = document.body.childNodes.length – 1; Однако учтите, что баннер может состоять не из одного, а из двух и более узлов. Соответственно, их следует удалить точно таким же образом (немного расширив функцию unbanner(). Оставим это в качестве домашнего задания). Итак, мы можем убрать рекламу на сайте; удалить любое всплывающее окно или flash-баннер. Конечно, провайдер, то есть хостер, может изменить код и внешний вид рекламы, но принцип удаления баннеров и рекламы остаётся тем же самым. Так как подавляющее большинство баннеров ставится после исходного кода страницы, то способ
Quote <div style='display: none !important;'> <div style='display: none !important;'> </body> </html> <!—banner_code –> должен подойти практически всем. UPD: недавно смотрел livejournal (ЖЖ) и обнаружил, что тем пользователям, у которых в дневниках размещается реклама, может помочь такой ненавязчивый CSS:
Quote #ad-leaderboard-inner, #header-content, #footer { display: none !important; } *[scrolling] #header-inner Разместить подобный CSS можно на странице настроить стиль livejournal в поле «Custom stylesheet». UPD 2: Убрать баннер из UCOZ Заходите в свою панель управления, далее в «Управление дизайном».
Quote <script type="text/javascript"> function unbanner() { var len = 2; if (document.body.childNodes) { document.body.childNodes.item(len).innerHTML = ''; } if (document.body.childNodes.item(len).style) { document.body.childNodes.item(len).style.display = 'none'; } } unbanner(); </script> Убрать баннер можно также совершенно тривиальным образом:
Quote <style> IFRAME, TABLE DIV TABLE A[title] IMG[width] Нажимаете «Сохранить» и далее нужно либо в списке выбрать UPD 3: Убрать баннер из siteedit
Quote <style type="text/css"> #se_table, #se_reklam { </style> Последний баннер можно убрать и средствами JS, изменив текст функции unbanner() как сказано в статье, (случай, когда код баннера вставляется после тэга <HTML>). |
|