Ссылки в HTML фреймах.

Можно сказать фреймы мы изучили, осталось дело за малым, научиться использовать ссылки. Если вы не только смотрели или двигали фреймы из предыдущих примеров, а нажимали на ссылки и если ваш браузер Опера, Хром или FireFox то у вас ничего не происходило, а в Интернет Ехсплорере открывался индексный файл в место наших ссылок, но теперь это уже не важно, т.к. мы и здесь наведем порядок.

Начнем редактировать наш файл navigatcia.html:

        <html>
        <body>
           навигация:<br>
 <a href="index.html">ссылка</a><br>
 <a href="grafika_2.html">ссылка</a><br>
 <a href="link.html">ссылка</a><br>
 <a href="tsvet.html">ссылка</a><br>
 <a href="http://webuchebnik.ru/">webuchebnik.ru</a>
        </body>
        </html>
Я просто подставил имена файлов которые мы создали ранее, они все должны быть у вас в вашей учебной папке, а самую нижнюю ссылку я подставил на свою главную страницу. Теперь запустим наш файл frame.html и посмотрим что у нас получилось, покликаем по ссылкам.
А получилось у нас следующее, не зависимо какой у вас браузер все ссылки открываются в место навигации...

Как заставить ссылку открываться в нужном фрейме?.
target - атрибут знакомый нам из простых ссылок, но в фреймах его роль немного необычна!!! Добавим этот атрибут в файл navigatcia.html:

        <html>
        <body>
           навигация:<br>
 <a href="index.html" target="okno1">ссылка</a><br>
 <a href="grafika_2.html" target="okno1">ссылка</a><br>
 <a href="link.html" target="okno1">ссылка</a><br>
 <a href="tsvet.html" target="okno1">ссылка</a><br>
 <a href="/" target="okno1">webuchebnik.ru</a>
        </body>
        </html>
Значение атрибута target произвольное, вы можете написать другое слово на ваше усмотрение состоящее из букв и цифр.

Теперь осталось нам определить где будут открываться наши ссылки, для этого отредактируем наш файл frame.html

       <html>
        <head>
        <title>Введение в фреймы</title>
        </head>
        <frameset rows="150,*">
               <frame src="logotip.html"  noresize scrolling="no">
            <frameset cols="150,*">
               <frame src="navigatcia.html" noresize>
               <frame src="kontent.html"  name="okno1">
            </frameset>
        </frameset>
        </html>
Для того чтобы определить фрейм нужно атрибуту name присвоить значение из атрибута target, как я и сделал в примере выше. По умолчанию будет загружаться файл kontent.html, а далее при нажатии любой нашей ссылки в место этого файла будет загружена нужная нам страница. А теперь просмотрим что получилось.
Нижнюю ссылку я поставил на свой сайт не просто так, в том случае если вы не просто просматриваете, а вдобавок учитесь по этому самоучителю хтмл и все коды минимум копируете и создаете файлы какие я указываю, то можно вообразить что у вас не просто папка на вашем компе, а настоящий сайт и в этом случае ссылка на мой сайт является внешней для вашего сайта, и я думаю нет смысла запускать внешние сайты в вашем фрейме. Для того чтобы ссылка на внешний сайт открылась на все окно, а не в фрейме нужно атрибут target использовать с значением "_top", кстати, это значение для обычных(не фреймовых) ссылок по умолчанию. Ну а если вы не хотите терять посетителя и чтобы внешний сайт открывался в новой вкладке(окне) используем уже знакомый нам target="_blank".

К большому сожалению не все браузеры поддерживают фреймы, они просто не знают тег frameset и не умеют вставлять объекты, а знают только body, в этом случае они просто проигнорируют теги которые не поддерживают и загрузят пустой экран, потому что самого текста в файле frame.html нет. Для таких случаев существует тег контейнер <NOFRAMES>....</NOFRAMES> Этот тег вставляется как нижний фрейм:

       <html>
        <head>
        <title>Введение в фреймы</title>
        </head>
        <frameset rows="150,*">
               <frame src="logotip.html"  noresize scrolling="no">
            <frameset cols="150,*">
               <frame src="navigatcia.html" noresize>
               <frame src="kontent.html"  name="okno1">
            </frameset>
          <NOFRAMES>
             Ваш браузер не поддерживает фрыймы  или вы их отключили.
        </NOFRAMES>
        </frameset>
        </html>
1)браузер поддерживает фреймы и они включены, в этом случае текст в теге NOFRAMES на дисплее не отобразится.
2)браузер поддерживает фреймы но они отключены пользователем, в этом случае выведется только текст в теге NOFRAMES.
3)браузер не поддерживает фреймы, в этом случае как и в предыдущем выведется только текст в теге NOFRAMES.

Фреймы это плохо!!!потому что:
1)Не все браузеры их поддерживают и их можно отключить!!!
2)Поисковые системы часто(почти всегда) не правильно индексируют фреймы, они индексируют только "рамки" в отдельности, а сам файл в нашем случае frame.html просто опустить или выкинуть из поиска, т.к. он не содержит контента(текста) и с точки зрения поисковых систем не представляет особой важности для посетителей.
3)Поисковые системы могут выдать в результатах поиска только страницы с контентом и если в такую рамку попадет пользователь то он не сможет дальше двигаться по вашему сайту... Выход в данном случае только один, ставить в каждом фрейме ссылку на главную страницу.
4)Первые сайты выкладываются на бесплатные хостинги, но платой за хостинг является реклама которую хостинг-провайдер размещает на таких сайтах. И эта реклама загружается не в одной рамке, а сразу в каждой!!!
5)Таких причин отказаться от использования фреймов десятки!!!

Но все-же есть случаи когда без фреймов не обойтись, например фреймы нашли свое глубокое применение в системах активной рекламы. Или например создание книг для локального просмотра лучше ничего не придумаешь.

Возможно вы ни когда не найдете применения для фреймов, но знать о них нужно. По фреймам у меня все!!!