![]() |
Здравствуйте, Гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Newbie ![]() Группа: User Сообщений: 3 Регистрация: 14-June 09 Пользователь №: 1,869 ![]() |
Суть проблемы:
Стартовая страница (test.html) содержит 3 фрейма, все изменяемые - внутри ещё имеются ссылки. То есть, если пользователь (каким-то образом) заходит на ссылку, то вместо красивого дизайна получает именно ссылку (без ещё двух фреймов), после чего отношение к этому сайту складывается «слегка неприятное». Проблема была бы легко решаемой, если из 3 фреймов изменялся только 1, тогда хватает всего 1 переменной для сравнения: (test.html) <html> <head> <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> <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> <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. после вопросительного знака, то понятное дело в каждом фрейме будет одна и та же ссылка. Вопрос: Какой нужен код, чтобы все ссылки открывались в нужном фрейме. Заранее спасибо! |
|
|
![]()
Сообщение
#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. Вот, как бы и всё. если есть у кого мысля - пишите. |
|
|
![]()
Сообщение
#3
|
|
![]() Support Staff ![]() ![]() ![]() Группа: Admin Сообщений: 1,170 Регистрация: 16-July 05 Из: nucleus.com.ru Пользователь №: 1 ![]() |
Ох, ну вы закрутили.
Я в общем понял в чем проблема. Был у меня скрипт когда то, решаюший вашу проблему, не уверен сохранился ли, но постараюсь найти. А вообще фреймы уже не используют... -------------------- |
|
|
![]()
Сообщение
#4
|
|
Newbie ![]() Группа: User Сообщений: 2 Регистрация: 26-November 19 Пользователь №: 2,137 ![]() |
Как я заработал на такой отпуск? Просто жми и выигрывай как я ! карточные игры
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 1st March 2021 - 07:32 PM |