Главная / Документы / Web-дизайнер / Статьи |
[предыдущая] [следующая]
Убийца фреймов |
Ну надеюсь все знают, что такое фрейм. Для тех, кто не знает, попытаюсь довести. Фреймы (frames - кадры) впервые появились в HTML в программе-браузере Netscape Navigator 2.0, они позволяют разбить страницу на независимые (даже с прокруткой окна) окна, выводящие свою информацию. Чем то кадры даже похожи на таблицы, так как они тоже служат для организации данных на HTML страницах. Однако, в отличие от таблиц, кадры не только организовывают данные, но и размещают их на экране монитора. Фактически они делят окно браузера на отдельные независимые панели, каждая из которых выводит свой файл. Что-то наподобии мини-браузеров. Это хорошо видно на примере нашего журнала - слева один узкий кадр для отображения меню, справа большой кадр для статей. Это очень полезно в данном случае, так как облегчается моя работа над самим журналом. Странички со статьями лежат в отдельных файлах и легко отображаются в кадре. Итак, в фрейм можно выводить любую страницу, где бы она не находилась. Например, можно сделать такое же меню, которое бы грузило в правый кадр какие-нибудь сайты. Этим часто пользуются многие ленивые и жадные люди, которые хотят иметь большой сайт с большим количеством посещений и обеспечить себе большой зароботок на баннерной рекламе. Также часто крутят обычные счётчики посещений. Фактически, их сайты ничего не содержат кроме ссылок с загрузкой в правый кадр (не важно какой, нижний верхний, левый и т.д.). Приходя на такой сайт, посетитель думает получить нормальную информацию, а получает нужный ему сайт в кадре сайта хитреца. Таким образом хороший сайт теряет свою привлекательность, а сайт обманщик получает ненадолго посетителя, который ходит по меню. Возникают вопросы. Как защитить свой сайт? Что нужно сделать, чтобы его не смогли загрузить в чьём-то фрейме (использовать нахаляву Ваш труд)? Можно ли это сделать? Ответ: можно, ещё как можно и нужно ! А реализуется всё с помощью обыкновенного JAVA - скрипта: <!-- Убийца кадров >:-) Евгений Жданов http://protoplex.al.ru--> <script language="JavaScript" type="text/javascript"> setTimeout ("Killer()", 500);<!-- 500 - 0.5 сек - частота проверки--> function Killer() { if (self.parent.frames.length != 0) if (self.parent.location != document.location) {self.parent.location=document.location}; } </script> Что делает скрипт? Раз в полсекунды (вместо 500 можно поставить другое значение) функция проверяет, загружена ли страница в каком-нибудь фрейме. Если загружена, то она просто сбрасывает с себя этот фрейм и занимает всю клиентскую область браузера. При установке данного скрипта на свой сайт учитывайте, что он и Ваши фреймы будет убивать, если Вы их используете. Та страница, на которой стоит этот скрипт не может долго задержаться во фрейме. В данном случае фрейм будет уничтожен через полсекунды после загрузки в него страницы со скриптом-убийцей. Кстати, этот код стоит на мультипортале. Просто была попытка отображать его в кадре чужого сайта. Попытка была пресечена этим скриптом. Я взял исходник из HTML-редактора 1st Page 2000, однако пришлось его слегка модифицировать, так как оригинальная версия просто убивала кадры каждые 3 секунды, даже не определяя, в кадре она или нет. Это вызывало лишние перезагрузки страницы, пришлось ставить проверку. Теперь скрипт полностью приспособлен к российским условиям :-) Вставляйте его на свои сайты и пользуйтесь на здоровье. |
[предыдущая] [следующая]
Главная / Документы / Web-дизайнер / Статьи |
Webmaster |
Copyright © 2001 Ильнур |