Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Автоматическая загрузка фреймов средствами JavaScript

 
Начать новую тему Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов dkws.org.ua -> Сайтостроение
 
Автор Сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13825
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Июл 15, 2015 9:01 am    Заголовок сообщения: Автоматическая загрузка фреймов средствами JavaScript
Ответить с цитатой

Если вы решили создать сайт на основе фреймов, то рано или поздно, вы столкнетесь с проблемой... А именно, при переходе по ссылке на внутреннюю страницу сайта загрузится только сама страница, без фреймовой структуры.

Решений проблемы несколько. Начнем с простых - закончим сложными...

Решение №1. На каждой внутренней страницы разместить ссылку на главную страницу, на фреймовую структуру, обозвав ее например - перейти на главную, или еще как нибудь, на что фантазии хватит. Просто, но не солидно...

Решение №2. Автоматически при загрузке страницы вне фрейма загружать другую страницу, содержащую фреймовую структуру. Для этих целей придется использовать JavaScript. Этой страницей может быть например главная страница, но ваш посетитель может быть огорчен, что ему опять надо искать необходимую информацию, которую он, как ему казалось уже нашел в поисковике.

Пример:
<head>
. . .
<script>
if (parent.frames.length==0)
window.location.replace("index.html?quot;)
</script>
</head>

Этот код необходимо вставить в начало каждой страницы, которая может быть загружена вне фрейма. Скрипт проверяет загружена страница во фрейм или нет, если нет запускает файл index.html. как я уже сказал, способ простой, но посетитель огорчится...

Решение №3. Автоматически при загрузке страницы вне фрейма загружать другую страницу, но не главную, а специально созданную, содержащую описание фреймовой структуры конкретно для этой страницы. Эту страницу можно положить в отдельную папочку, назвать ее например ext (или опять же, на что хватит фантазии), и так для каждой страницы сайта. Думаю идея понятна. Желательно запретить индексацию папки поисковыми роботами в файле robots.txt. Недостаток, очень трудоемко, но посетитель будет доволен... Пример приводить не буду, см. предыдущий, отличие только в имени файла.

Решение №4. Идея такова: необходимо при загрузке внутренней страницы автоматически загружать другую страницу (главную), содержащую фреймовую структуру, каким-то образом передать имя файла и загрузить этот файл в определенный фрейм.

Пример (внутренняя страница):
<head>
. . .
<script language="JavaScript">
<!--
if (window.parent.frames.length == 0) {
location.href="index.html?"+location.pathname;
}
//-->
</script>
</head>

Скрипт проверяет загружена страница во фрейм или нет, если нет запускает главную страницу сайта и передает свое имя (имя файла) через адресную строку.

Пример (главная страница):
<head>
. . .
<script language="JavaScript">
<!--
var string = location.search;
var current_page=string.substring (1, string.length);
document.write('<frameset rows=100,* marginwidth="1" marginheight="1">');
document.write('<frame name="head" src="head.html?quot; noresize scrolling=no>');
document.write('<frameset cols=150,* marginwidth="1" marginheight="1">');
document.write('<frame name="left" src="left.html?quot; noresize scrolling=no>');
if (location.search == "") {
document.write('<frame name="right" src="right.html?quot; noresize scrolling=auto>');
} else {
document.write('<frame src="' + current_page + '" name="right" noresize scrolling=auto>');
}
document.write('</frameset>');
//-->
</script>
</head>

Скрипт формирует фреймовую структуру, проверяет передано ли имя файла через адресную строку, если передано - извлекает его из адресной строки и загружает в нужный фрейм, если нет - загружает в нужный фрейм страницу по умолчанию.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов dkws.org.ua -> Сайтостроение Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис