|
|
|
Открыть новое окно браузера из сервлета
|
|||
|---|---|---|---|
|
#18+
Есть html с фреймами, на одном из них есть форма, на submit которой вызывается сервлет. После формирования данных, результаты записываются в атрибуты запроса и запрос перенаправляется в jsp. Только в зависимости от условия, надо, что бы либо jsp отобразилась в том же фрейме, где была форма, либо, что бы открылось новое окно, опять же с фреймами и результаты отобразились в одном из них. Проблема в том, что как нужно будет отобразить результаты можно определить только в конце работы сервлета, когда все данные сформированы. Можно было бы, конечно, если надо открыть в новом окне, то во фрейм с формой загрузить какую-нибудь страницу, а на ее закгрузку JavaScript'ом открыть новое окно и в нужном фрейме вызвать еще раз сервлет, что бы он сформировал данные в этот фрейм... Но не хотелось два раза выполнять формирование одних и тех же данных. (сессии не используются) Можно это как-нибудь реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 10:49 |
|
||
|
Открыть новое окно браузера из сервлета
|
|||
|---|---|---|---|
|
#18+
Еще вопрос в догонку: Как JavaScript'ом из одного фрейма обратиться к элементу, например, к картинке, по ID, расположенной на другом фрейме. Фрейм вроде находиться window.parent.document.getElementById('frame1'), а как найти, то что на этом фрейме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 11:33 |
|
||
|
Открыть новое окно браузера из сервлета
|
|||
|---|---|---|---|
|
#18+
1.а никак, сервлет работает на сервере, а веббраузер на клиенте, я бы сделал еще один фрейм(с 0 размерами), в который сабмитится форма, а возвращаемая jsp - проверяет данные, если надо новое окно, то win=window.open win.body.innerHTML=self.body.innerHTML (и куча наворотов с передачей объектов если надо), а если не надо, то frame.body.innerHTML=... 2. к фрейму обратиться window.parent.document.frames[name]; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 13:34 |
|
||
|
Открыть новое окно браузера из сервлета
|
|||
|---|---|---|---|
|
#18+
bolgare1.а никак, сервлет работает на сервере, а веббраузер на клиенте, я бы сделал еще один фрейм(с 0 размерами), в который сабмитится форма, а возвращаемая jsp - проверяет данные, если надо новое окно, то win=window.open win.body.innerHTML=self.body.innerHTML (и куча наворотов с передачей объектов если надо), а если не надо, то frame.body.innerHTML=... спасибо... подумаю в этом направлении 2. к фрейму обратиться window.parent.document.frames[name]; К фрейму - понятно, а как к элементу в этом фрейме? У меня почему-то не получается получить объект по ID находящийся на этом фрейме (том, который не текущий, а который найден по имени) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 13:54 |
|
||
|
Открыть новое окно браузера из сервлета
|
|||
|---|---|---|---|
|
#18+
Вон енто рабочая штука, передается имя фрейма и мессага function setFrameMessage(frm,msg){ var dcm=window.parent.document.frames[frm].document; var txt="<html><link rel='stylesheet' href='/Project/jsp/general/style.css' title='Style'/>"; txt+="<body><table width='100%'><tr><td height='500px' valign='center' align='center'>"; txt+=msg; txt+="</td></tr></table></body></html>"; dcm.clear(); dcm.close(); dcm.write(txt); dcm.close(); } так что window.parent.document.frames[frm].document.getElementById() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 13:59 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=772&tid=2151088]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 324ms |

| 0 / 0 |
