Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Открытие фрейма
 
 автор: Smak   (18.11.2009 в 21:36)   письмо автору
 
 

Здравствуйте, проблема следущая. Есть страница с двумя фреймами: навигация и страницы. Дааааавным давно помню делал как-то что при открытии отедльной страницы страницы из содержания автоматически открывался основной фрейм. Тоесть если
<frameset framespacing="1" frameborder="yes" bordercolor="black" border="1" cols="22%,*">
<frame frameborder="no" scrolling="auto" noresize name="navi" src="navi.html">
<frame frameborder="no" name="data" src="title.html">
</frameset>


то при открытии title.html открывался index.html

З.Ы. насколько помню это делалось без участия яваскрипта

  Ответить  
 
 автор: elenaki   (19.11.2009 в 18:29)   письмо автору
 
   для: Smak   (18.11.2009 в 21:36)
 

это называется framekiller - если открыто не родительское окно, то переадресация на родителя.

<SCRIPT LANGUAGE="JavaScript"> 
 if (self.parent.frames.length == 0) 
 self.parent.location="index.html"; 
</SCRIPT>


без участия js я не знаю.

  Ответить  
 
 автор: Smak   (20.11.2009 в 02:49)   письмо автору
 
   для: elenaki   (19.11.2009 в 18:29)
 

Спасибо! Вот только назревает вопрос а как заставить открываться ту страницу на которую тыркнул а не стартовую :)

  Ответить  
 
 автор: elenaki   (20.11.2009 в 18:19)   письмо автору
 
   для: Smak   (20.11.2009 в 02:49)
 

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

  Ответить  
 
 автор: Smak   (23.11.2009 в 01:51)   письмо автору
 
   для: elenaki   (20.11.2009 в 18:19)
 

Вот дело то в том что все страницы в которые вставлен этот код должны открываться ТОЛЬКО внутри фреймов, однако при запуске любого из файлов с этим кодом открывается стартовая страница фрейма, тоесть:

Файл 1.html:
<script>if(self.parent.frames.length == 0) self.parent.location="index.html";</script>


Файл index.html:

<frameset framespacing="1" frameborder="yes" bordercolor="black" border="1" cols="22%,*">
<frame frameborder="no" scrolling="auto" noresize name="navi" src="navi.html">
<frame frameborder="no" name="data" src="title.html">
</frameset>


Вот при запуске 1.html автоматически переходит на index.html, однако в фрейме "data" открывается title.html а не 1.html. Можно ли как то это решить?

З.Ы. Насчет фреймов - сделал их потому что задание такое: меню навигации должно быть доступно из любого места страницы, тоесть даже при прокрутке меню не должно пропадать(делать какую нибудь шляпу которая будет скакать вместе с прокруткой совсем не хочется, ненажедно мне кажется)

  Ответить  
 
 автор: АЯ   (23.11.2009 в 03:32)   письмо автору
 
   для: Smak   (23.11.2009 в 01:51)
 

Можно это решить. Например, так - в файле 1.html прописать:
<script>if(self.parent.frames.length == 0) self.parent.location.href = "index.html?1.html"</script>
А в файле 2.html соответственно:
<script>if(self.parent.frames.length == 0) self.parent.location.href = "index.html?2.html"</script>
и так далее.

В индексном файле index.html надо добавить:
<script>
function myFunc ()
{
var qs = document.location.href.split ('?');
window.frames.data.document.location.href = (qs.length == 2) ? qs [1] : 'title.html';
}
</script>


<frameset framespacing="1" frameborder="yes" bordercolor="black" border="1" cols="22%,*" onload="myFunc ()">
<frame frameborder="no" scrolling="auto" noresize name="navi" src="navi.html">
<frame frameborder="no" name="data"><!-- SRC в этом фрейме не указывать -->
</frameset>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования