|
- Это не зверь и не злой мутант!
Это убийца фреймов!
- Кого?
- Фреймов !
- Понятно... :-(
Ну надеюсь все знают, что такое фрейм. Для
тех, кто не знает, попытаюсь довести. Фреймы
(frames - кадры) впервые появились в HTML в
программе-браузере Netscape Navigator 2.0, они
позволяют разбить страницу на независимые (даже
с прокруткой окна) окна, выводящие свою
информацию. Чем то кадры даже похожи на
таблицы, так ка они тоже служат для
организации данных на HTML страницах. Однако,
в отличие от таблиц, кадры не только
организовывают данные, но и размещают их на
экране монитора. Фактически они делят окно
браузера на отдельные независимые панели,
каждая из которых выводит свой файл. Что-то
наподобии мини-браузеров. Это хорошо видно
на примере нашего журнала - слева один узкий
кадр для отображения меню, справа большой
кадр для статей. Это очень полезно в данном
случае, так как облегчается моя работа над
самим журналом. Странички со статьями лежат
в отдельных файлах и легко отображаются в
кадре.
Итак, в фрейм можно выводить любую
страницу, где бы она не находилась. Например,
можно сделать такое же меню, которое бы
грузило в правый кадр какие-нибудь сайты.
Этим часто пользуются многие ленивые и
жадные люди, которые хотят иметь большой
сайт с большим количеством посещений и
обеспечить себе большой зароботок на
баннерной рекламе. Также часто крутят
обычные счётчики посещений. Фактически, их
сайты ничего не содержат кроме ссылок с
загрузкой в правый кадр (не важно какой,
нижний верхний, левый и т.д.). Приходя на
такой сайт, посетитель думает получить
нормальную информацию, а получает нужный
ему сайт в кадре сайта хитреца. Таким
образом хороший сайт теряет свою
привлекательность, а сайт обманщик
получает ненадолго посетителя, который
ходит по меню.
Возникают вопросы. Как защитить свой сайт?
Что нужно сделать, чтобы его не смогли
загрузить в чьём-то фрейме (использовать
нахаляву Ваш труд)? Можно ли это сделать?
Ответ: можно, ещё как можно и нужно ! А
реализуется всё с помощью обыкновенного JAVA
- скрипта:
<!-- Убийца кадров >:-) Евгений Жданов http://protoplex.com-->
<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
секунды, даже не определяя, в кадре она или
нет. Это вызывало лишние перезагрузки
страницы, пришлось ставить проверку. Теперь
скрипт полностью приспособлен к российским
условиям :-) Вставляйте его на свои сайты и
пользуйтесь на здоровье.
|