Посвящаю сие Инге
Ежегодно на свет появляются тысячи мильонов младенцев. Многие из них вырастут и станут веб-девелоперами. Некоторые из ставших однажды придут (всё время приходят!) ко мне и спросят: «А почему нельзя делать сайты с фреймами?». На это я им зачитаю нижеследующее:
Сайты с фреймами это зло. Зло существует. Бывает, приходится делать зло («т.к. добро сосёт» © известный злодей Spectator).
Недостатки сайтов с фреймами
Рассмотрим указанное в деталях:
1. Проблемы с навигацией.
Сайты с фреймовой структурой ведут себя, как полные уроды. Какие страницы ты бы не открывал адрес в адресной строке всё тот же. (Таким образом, положить закладку на внутреннюю страницу невозможно.) Попытка открыть страницу такого сайта в новом окне (из контекстного меню правой кнопки мыши) приводит к исчезновению всех фреймов, кроме открытого (обычно исчезает главное меню). Человека, привыкшего к мирному сёрфингу, подобное может привести к греховным мыслям.
2. Проблемы с индексацией.
Поисковые машины не проиндексируют твои дурацкие фреймы или проиндексируют только их внутренние страницы. Таким образом, сайт или не найдут вовсе (что, может, и к лучшему), или результом поиска станет содержимое фреймов, которое обычно представляет собой невнятные страницы без каких-либо опозновательных знаков или навигации.
3. Главное Зло Мира.
Главное Зло Мира это когда кто-то пытается навязать другому своё представление «как лучше». Если вы решаете за пользователя, что он должен отдать пол-экрана на ваше засраное меню, то это зло. Если вы решаете, что ему будет удобно крутить не весь экран, а уродский квадрат с откушенным скроллингом это зло. Если вы считаете, что сам он не может о себе позаботиться Короче, фреймы это зло.
Как всё-таки делать сайты с фреймами?
Еслы ты такой отморозок, что всё-таки хочешь делать сайты с фреймами, то вот тебе тайное знание, как решить перечисленные проблемы:
1. Проблемы с навигацией.
Проблема с адресной строкой решается насильным подставлением в поле адреса значения типа сайт.ру/?страница, который, если его набрать напрямую, должен вывести фреймовую структуру и загрузить в неё то, что надо. Делается это, например, на Javascript.
Проблема с открыванием страниц в новом окне решается другой процедуркой на Javascript, которая при загрузке страницы проверяет есть ли вышестоящий фрейм и если его нету загружает фреймовую структуру, а в нее эту страницу.
2. Проблемы с индексацией.
Для роботов поисковых машин на странице frameset-а ставятся специальные ссылки, по которым они могли бы проследовать. Проблема открытия внутренних страниц решалась в предыдущем пункте.
3. Главное Зло Мира.
А эту проблему решить нельзя. Можно только сделать вид, что её не существует.
Преимущества сайтов с фреймами
У сайтов с фреймами нет никаких преимуществ, которые нельзя было бы реализовать другими средствами.
Когда нужно делать сайты с фреймами
Создание сайтов с фреймами это прерогатива самых умных, опытных, достойных, часто великих веб-девелоперов. Они знают, когда. А ты и думать забудь.
Статус-бар
Заодно. Эй, умники, которые пишут в статус-бар всякую чепуху, я вот вам что хочу сказать. Кроме вас, #$%^@*, есть и другие люди достойные сёрферы, которые привыкли смотреть в статус-бар чтобы узнать, что лежит под ссылкой. Когда вы делаете то, что вы делаете, такие люди посылают в ваш адрес самые изощрённые проклятия. Поэтому и не везёт, поэтому и денег не хватает, поэтому и здоровье слабое.