Решение проблем с фреймами
Как вы знаете, ничего идеального на свете не бывает. Это утверждение относится и к фреймам.
Недостатки фреймов и их преодоление
Вроде бы, фреймы всем хороши. Они позволяют разделить окно Veb - обозревателя на несколько независимых "форточек", в каждой из которых может отображаться своя ¥еЬ-страница. Таким образом, одна большая ¥еЬ-страница делится на несколько маленьких, содержащих какую-либо часть большой страницы: заголовок, полосу навигации, сведения об авторских правах и основное содержимое. При этом когда пользователь щелкает по гиперссылке, происходит обновление только фрейма с основным содержимым; содержимое всех остальных фреймов остается неизменным.
Достоинства такого подхода очевидны. Во-первых, не нужно дублировать заголовок, полосу навигации и сведения об авторских правах на всех страницах сайта — достаточно поместить их один раз в соответствующие фреймы, где они и останутся. Во-вторых, сами страницы уменьшатся в размерах и станут быстрее загружаться.
На этом достоинства фреймов кончаются, и начинаются недостатки.
Недостаток первый: невозможность обновления содержимого сразу двух или нескольких фреймов. Давайте рассмотрим гипотетический сайт — каталог программ, структура фреймов которого показана на рис. 7.26.
Заголовок сайта |
|
Список категорий программ (Интернет, офис, системные, утилиты, мультимедиа и т. д.) |
Список программ выбранной категории |
Описание выбранной в списке программы, "снимок" экрана, ссылка для загрузки и т. д. |
|
Сведения о правах разработчика сайта |
Рис. 7.26. Структура фреймов сайта — каталога программ |
Предположим, пользователь щелкает одну из позиций списка категорий, расположенного в левом фрейме. Вам необходимо обновить содержимое фрейма списка программ, относящихся к выбранной категории, и вы это сделаете. Но, кроме того, нужно будет обновить содержимое фрейма описания выбранной программы, скажем, вывести описание первой или самой популярной программы в списке. Ведь если оставить в нем описание программы, относящейся совсем к другой категории, это будет, мягко говоря, некрасиво.
К несчастью, средствами HTML это сделать невозможно. Обычная гиперссылка HTML, описываемая парным тегом <а>, может указывать только на один файл. Если вы хотите по щелчку загружать сразу две страницы (или более — в данном случае это несущественно) в разные фреймы, вам придется писать сценарий на языке JavaScript. А это уже довольно сложная задача для начинающего Web-дизайнера. На первый раз можем посоветовать только постараться избежать использования таких наборов фреймов или же отказаться от фреймов вообще.
Недостаток второй: невозможность задания текста, который Web-
Обозреватель помещает в заголовок своего окна. Как вы знаете, он помещает туда название отображаемой в окне Web-страницы. Но поскольку страница набора фреймов никогда не меняется (меняется только содержимое одного из фреймов), текст в заголовке окна Web-обозревателя остается неизменным. В принципе, это не очень страшно — мало кто из посетителей сайтов обращает внимание на заголовок окна Web-обозревателя. Но если вы собираетесь выводить в заголовке окна какую-либо важную информацию, имейте это в виду.
Недостаток третий: "несовместимость". Путь фреймов к признанию комитетом WWWC был так долог и тернист, что за это время успели появиться несколько программ Web-обозревателей, их поддерживающих. Но поскольку единого стандарта на фреймы не было, поддерживали они их по-своему. В результате фреймы стали одним из самых "несовместимых" элементов HTML.
В данном случае можно посоветовать только тщательно тестировать страницы наборов фреймов в разных программах Web-обозревателей. Конечно, Dreamweaver старается генерировать максимально совместимый код, но все - таки не помешает лишний раз проверить, что он сгенерировал.
Недостаток четвертый. О нем мы поговорим в главе 14, когда будем рассматривать поисковые системы и "раскрутку" вашего сайта с их помощью.
Проблема с фреймами в старых версиях Navigator
А вот это уже не "функциональная особенность" некогда известной программы, а элементарная ошибка разработчиков. Старые версии Navigator неправильно отображают страницы наборов фреймов после того, как поль
зователь изменит размеры окна. И разработчики Dreamweaver, чтобы компенсировать невнимательность разработчиков фирмы Netscape, ввели в свой Web-редактор специальную функцию исправления данной ошибки.
Щ |
Откройте в окне документа Dreamweaver страницу набора фреймов и выберите в меню Commands пункт Add/Remove Netscape Resize Fix. На экране появится небольшое окно-предупреждение, кратко описывающее проблему с фреймами в Navigator и то, что Dreamweaver может сделать для ее решения (рис. 7.27).
Add/Remove Netscape Resize FiH
Add Cancel |
Some versions of Netscape Navigator contain a bug that may cause the page to display incorrectly when the user resizes the browser window. This problem can be fixed with JavaScript code that automatically reloads the page whenever the window is resized.
Click Add to insert this JavaScript code into your document.
Рис. 7.27. Окно, предупреждающее о проблеме с фреймами в Navigator и предлагающее путь ее решения
Если вы нажмете кнопку Add, Dreamweaver добавит в код страницы небольшую программу-сценарий на языке JavaScript, перезагружающую страницу набора фреймов после изменения размеров окна Navigator. Если вы нажмете кнопку Cancel, Dreamweaver ничего не сделает.
Может случиться так, что вы захотите удалить эту программу-сценарий, для чего вам необходимо просто еще раз выбрать пункт Add/Remove Netscape Resize Fix в меню Commands. На экране появится другое окно-предупреждение, показанное на рис. 7.28. Нажмите кнопку Remove для удаления данного кода или кнопку Cancel — для отказа от этого.
Рис. 7.28. Окно, предлагающее удалить сценарий перезагрузки страницы |
Следует ли этим пользоваться? Вероятно, да. Поскольку старые версии Netscape Navigator все еще используются некоторой частью интернетчиков, нужно предусмотреть все, чтобы они могли без проблем просматривать ваши страницы. Тем более что это не отнимет у вас никаких усилий — за вас все сделает Dreamweaver. А помещаемый им сценарий очень мал и не может существенно увеличить размер страницы набора фреймов.
Вот мы и познакомились с фреймами и фреймовым дизайном. И даже создали новый вариант сайта с их использованием.
Но, как уже говорилось, фреймы потихоньку устаревают. Сейчас в моде дизайн с использованием таблиц. Табличный дизайн позволяет создавать Web - страницы, больше напоминающие печатные документы, например газеты. Они включают в себя несколько колонок с текстом, множество графических иллюстраций, линеек, т. е. всего того, к чему привыкли дизайнеры-полиграфисты. Таблицы позволяют сделать все это с легкостью. А уж как Dreamweaver обращается с таблицами!
Одним словом, вы должны узнать это.