IPB

Здравствуйте, Гость ( Вход | Регистрация )

 
Ответить в этой темеОткрыть новую тему
> Фреймы - проблема с адресной строкой
Sergio
сообщение Jun 14 2009, 09:09 AM
Сообщение #1


Newbie
*

Группа: User
Сообщений: 3
Регистрация:
14-June 09
Пользователь №: 1,869



Суть проблемы:
Стартовая страница (test.html) содержит 3 фрейма, все изменяемые - внутри ещё имеются ссылки. То есть, если пользователь (каким-то образом) заходит на ссылку, то вместо красивого дизайна получает именно ссылку (без ещё двух фреймов), после чего отношение к этому сайту складывается «слегка неприятное». Проблема была бы легко решаемой, если из 3 фреймов изменялся только 1, тогда хватает всего 1 переменной для сравнения:

(test.html)

<html>
<head>
&lt;script LANGUAGE="JavaScript"><!--
a=document.location.search
document.write('<frameset rows="150,100,*" frameborder="0" framespacing="0">');
document.write('<frame src="1.html" name="1" noresize scrolling="no">');
document.write('<frame src="2.html" name="2" scrolling="no">');
if(a == "")
document.write('<frame src="3.html" name="3" scrolling="auto">');
else
document.write('<frame name="3" src=' + a.substring(1,a.length) + '>');
document.write('</frameset>');
//--></SCRIPT>
<title>Фреймы - проблема</title>
</head>
</html>

(3.html)

<html>
<head>
<title></title>
&lt;script LANGUAGE="JavaScript"> <!--
if (window.parent.frames.length == 0)
location.href="test.html?" + location.pathname;
//--></SCRIPT>
</head>
<body bgcolor="#FFFFDF">
<h1 align="center">3</h1>
<p align="center"><a href="test3.html">Проверка</a></p>
</body>
</html>

(test3.html)

<html>
<head>
<title></title>
&lt;script LANGUAGE="JavaScript"> <!--
if (window.parent.frames.length == 0)
location.href="test.html?" + location.pathname;
//--></SCRIPT>
</head>
<body bgcolor="#FFFFDF">
<h1 align="center">Тест3</h1>
</body>
</html>

Если запустить test3.html то всё работает правильно, но если test2.html или test1.html, находящиеся понятно в 2.html, 1.html, то открывается не в том фрейме и в этом вся проблема. Видимо, нужна ещё одна переменная (каждому фрейму) для последующего сравнения – то есть, для определения в каком из фреймов была открыта ссылка, чтобы именно в нём загрузить ссылку. А как это сделать я не знаю, а если применить ко всем фреймам сравнение только по наличию адреса document.location.search. после вопросительного знака, то понятное дело в каждом фрейме будет одна и та же ссылка.
Вопрос:
Какой нужен код, чтобы все ссылки открывались в нужном фрейме.
Заранее спасибо!
К началу страницы
 
+Цитировать Сообщение
Sergio
сообщение Jun 15 2009, 06:09 AM
Сообщение #2


Newbie
*

Группа: User
Сообщений: 3
Регистрация:
14-June 09
Пользователь №: 1,869



Единственное, что пришло в голову, вторую переменную вставить сразу после адреса, то есть вместо location.href="test.html?" + location.pathname; прописывать: location.href="test.html? test1.html1"; (после html стоит цифра 1 – переменная означающая 1 фрейм) ну и конечно же в test.html поменять слегка код, применив уже ко всем фреймам (изменяя цифры сравнения):
if(a == ""|| a.substring(a.length-1)!=1){
document.write('<frame src="1.html" name="1" scrolling="auto">');
}else{
document.write('<frame name="1" src=' + a.substring(1,a.length-1) + '>');
}
Происходит обрезание адреса, используя всё тот же substring.
Вот, как бы и всё. если есть у кого мысля - пишите.
К началу страницы
 
+Цитировать Сообщение
Suvoroff
сообщение Jun 18 2009, 10:42 AM
Сообщение #3


Support Staff
***

Группа: Admin
Сообщений: 1,170
Регистрация:
16-July 05
Из: nucleus.com.ru
Пользователь №: 1



Ох, ну вы закрутили.
Я в общем понял в чем проблема. Был у меня скрипт когда то, решаюший вашу проблему, не уверен сохранился ли, но постараюсь найти.
А вообще фреймы уже не используют...


--------------------
К началу страницы
 
+Цитировать Сообщение
zennor
сообщение Nov 26 2019, 05:24 PM
Сообщение #4


Newbie
*

Группа: User
Сообщений: 2
Регистрация:
26-November 19
Пользователь №: 2,137



Как я заработал на такой отпуск? Просто жми и выигрывай как я ! карточные игры
К началу страницы
 
+Цитировать Сообщение

Ответить в этой темеОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 13th December 2019 - 11:32 PM
Рецепты - Скачать программы - Scripts