Показать сообщение отдельно
  #7 (permalink)  
Старый 03.02.2009, 11:46
Новичок на форуме
Отправить личное сообщение для Armagid Посмотреть профиль Найти все сообщения от Armagid
 
Регистрация: 30.01.2009
Сообщений: 4

Привет.
Там ситуация такая:
Есть frameset:
<frameset border="0" rows=" 93 ,*,35"
onUnLoad="return parent.checkupdate();"
>
<frame name="top1" scrolling="no" target="contents" src="http://localhost/IB/top.jsp?lang-id=LV" marginwidth="0" marginheight="0" />

<frameset cols="150,*" border="0">
<frame name="contents" target="main" src="http://localhost/IB/menu.jsp?lang-id=LV" scrolling="no" marginwidth="0" marginheight="0" />
<frameset rows="*,125" border="0">

<frame name="main" src="http://localhost/IB/servlet/AccountsList?lang-id=LV" scrolling="auto" target="_self" marginwidth="0" marginheight="0" />

<frame name="banner" src="http://localhost/IB/banners.jsp?lang-id=LV" scrolling="no" marginwidth="0" marginheight="0" border="0"/>
</frameset>
</frameset>

<frame name="bottom" scrolling="no" target="contents" src="http://localhost/IB/bottom.jsp?lang-id=LV" marginwidth="0" marginheight="0" />
</frameset>

В frame name="top" показываются верхние менюшки выбора
В frame name="contents" показываются слева тоже менюшки выбора, соответствующие верхнему выбору.
В frame name="main" показывается содержание страницы соответствующее левому выбору.
В frame name="banner" показывается картинка т.е. рекламный банер. На каждую менюшку, что с лева свой банер. Когда я кликаю по банеру, то
я должен перейти с одной левой менюшки на следующую.

Идея такая, что при клике по банеру я на сервер посылаю uri="screen_name" (это когда thisForm.submit()
Сервер получая имя экрана на который он должен переключится меняет
свой внутрений framework на этот новый screen_name. Но у пользователя еще висит старое состояние всех frames. Когда происходит
это:
top.top1.location = 'http://localhost/IB/top.jsp?lang-id=LV';

то верхий frame заново запрашивает свою страницу, т.е. если внутренний серверный framrwork имеет для frame="top" новое состояние оно отобразится. Далее верхний frame вызывает таким же способом:

top.contents.location = 'http://localhost/IB/menu.jsp?lang-id=LV';
новое состояние левого фрейма. Т.е. переключились на новый экран.

Т.е.:
В IE и Mozila:
1. Сначало сервер получая при "thisForm.submit();" изменяет внутренний framrwork на другой экран.
2. Потом запрашивается
top.top1.location = 'http://localhost/IB/top.jsp?lang-id=LV';
когда рефрешится верхний фрейм, это вызывает вызов такой же команды для левого фрейма, т.е. рефрешится левый фрейм.
Т.е. работает.

В Opera иногда срабатывает правильно. Но чаще сначало пункт 2. т.е. рефреш. А потом пункт 1 т.е. изменение экрана, но оно соответственно уже у пользователя не отображается.
Ответить с цитированием