![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Vitalik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: нет Всего: 12 |
Собственно проблема следующая. Как мне кажется у нее должно быть какое-то банальное правильное решение, оно обязательно должно существовать..
Был обычный безфреймовый сайт. Слева табличка со ссылками. Нужно было его переделать на фреймы. Уже почти все готово, но не совсем.. Значится, у нас есть два фрейма (на самом деле три, трейтий вверху, но это не принципиально). Ситуация вполне обычная и стандартная: есть один фрейм - основной (в нем отображается текущее содержимое) и второй фрейм - дополнительный (в нем отображается менюшка, которая меняется в зависимости от содержимого основного фрейма). Я долго думал, где бы мне задать вопрос об этом.. Форум "Вёрстка веб-сайтов" отпал, так как здесь скорее всего проблему невозможно решить только с помощью голого HTML. Думал потом создать ее в "JavaScript: Общие вопросы", но дело в том, что я и так знаю, как с помощью JavaScript изменить содержимое фрейма (кажется так: имя_фрейма.location.href = 'новый url'). Тут проблема несколько "ширше".. Нужно не просто сделать "рядовую" ссылочку, меняющую содержимое двух фреймов. Хотелось бы, чтобы href у всех ссылок остался прежний, и никаких onclick по возможности не добавилось, просто у ссылок в дополнительном фрейме появляется target на основной фрейм, а все остальные ссылки остались бы вообще без изменений. В принципе может и ничего страшного не было бы, если бы добавить к каждой ссылочке какую-то ерунду, но ведь тогда и перелопачивать все файлы проекта придется, и страничка станет больше и неуклюжей.. Вобщем этого бы очень не хотелось.. Пока что я сделал следующим образом, но решение очень плохое получилось, весьма неудачное.. В заголовок каждой страницы я добавил:
В файле index.php для каждого параметра action просто напросто идет такой код:
И все хорошо, все замечательно.. Если бы не несколько "но".. Во-первых, этот навигатор (то есть менюшка в дополнительном фрейме) обновляется только тогда, когда полностью обновится страница в основном фрейме. А это ведь бывает до нескольких секунд приходится ждать и как-то не эстетично получается, когда вот уже видна загрузка новой страницы, а дополнительный фрейм содержит старую менюшку.. Во-вторых, очень неприятно, что история посещения содержит в два раза больше элементов.. То есть чтобы попасть на прошлую страницу нужно два раза щелкнуть по кнопке "Назад" (один раз для обновления навигатора, один раз для основного содержимого). Это очень-очень неудобно.. Если для решения этой проблемы нужен только JS, то можете перемещать эту тему туда.. ![]() Просто я подумал, что может вдруг придется и серверную часть затронуть.. Да и куски PHP-кода здесь присутствуют.. |
||||
|
|||||
Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: нет Всего: 12 |
Гм.. Неужели ни у кого никогда не возникало подобных проблем?..
![]() Может быть все-таки мне стоит создать пару конкрентых вопросов в форуме по JS, может можно будет обойтись JS-шными "заплатками" к существующему методу?.. |
|||
|
||||
Oflashp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 2.8.2007 Где: Россия, Санкт-Пет ербург Репутация: 1 Всего: 2 |
Ajax в руки, фреймы в жопу и поехали.
Или юзай плавающие фреймы Или disable:none|block Это сообщение отредактировал(а) Oflashp - 4.8.2007, 20:55 |
|||
|
||||
Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: нет Всего: 12 |
Oflashp, спасибо за ответ
![]() Дело в том, что нужно, чтобы основное содержимое скролилось, в то время как менюшка оставалась на месте. Это обязательное условие. Поэтому, наверное, единственным альтернативным вариантом будет плавающий фрейм. Но есть ли какой-то принципиальный выигрыш от этого? Чем с плавающим фреймом проще работать?.. Может я чего-то не понимаю.. ![]() Добавлено @ 21:08 Гм.. Сейчас вдруг пришла мысль.. Интересно, можно ли поместить содержимое в DIV и там как-то заставить его скролиться? ![]() Добавлено через 6 минут и 34 секунды Вот только жалко будет все обратно переделывать.. Так намучился с этими фреймами.. ![]() Это сообщение отредактировал(а) Vitalik - 4.8.2007, 21:10 |
|||
|
||||
Oflashp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 2.8.2007 Где: Россия, Санкт-Пет ербург Репутация: 1 Всего: 2 |
Для броузеров кроме IE доступно свойство position:fixed которое держит в заданном месте любой обьект и прокручивает ос страницей. Добавлено через 2 минуты и 10 секунд По поводу загрузки, в дополнительном окне пихаешь всё в див, с свойством по умолчанию visibility: none И в конце окна основного пусть скрипт пишет яву, которая будет менять это свойство...или перегружать фрейм. |
|||
|
||||
Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: нет Всего: 12 |
То есть такое можно сделать, например, с менюшкой, я правильно понял? Гм.. То, что IE не поддерживает это очень плохо.. Хотелось бы все-таки, чтобы проект работал и под этим основным (в плане доступности) браузере.. :( Не очень понял.. Это относится к текущему решению с фреймами? То есть просто при изменении основного содержимого сделать скрипт, который бы обновлял содержимое дополнительного фрейма? Но ведь сейчас именно так и сделано и это порождает две проблемы, описанные выше (проблема с историей и проблема с задержкой обновления).. :( P.S. Я еще не интересовался, но может вы подскажете. Можно ли сделать скролируемый DIV и как это лучше сделать. DIV с полосой прокрутки, при чем DIV на всю оставшуюся часть страницы.. Возможно? |
|||
|
||||
Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: нет Всего: 12 |
Выяснил, что можно сделать скролируемый DIV так:
Таким образом поместив его справа от менюшки можно добиться в точности такого же эффекта, как и с помощью фреймов.. ![]() Эх, как жаль, что я сразу до этого не догадался.. Придется теперь "откатываться" назад.. ![]() <оффтопик> P.S. Есть ли здесь на форуме самый обычный грустный смайл?.. Не сердитый анимационный, который сейчас под "sad", а тот что был давным давно под ":(". Или хотя бы аналогичный по смыслу. А то очень не хватает иногда.. </оффтопик> |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |