#java #javascript #jsp #servlets
#java #javascript #jsp #сервлеты
Вопрос:
в моем первом jsp я открываю окно jsp. в этом всплывающем окне я выбираю несколько запросов и передаю их другому jsp через сервлет. моя проблема в том, что когда я передаю запрос из всплывающего окна второму jsp, второй jsp отображается только в том же всплывающем окне. как я могу закрыть всплывающее окно и передать запрос второму jsp. в следующем коде я использовал функцию перенаправления во всплывающем окне, но она не работает. пожалуйста, помогите мне, как это сделать….
function UpdatePannel()
{
var selectedIds;
var count=0;
for (i=0; i<document.frm1.check1.length; i )
{
if (document.frm1.check1[i].checked==true)
{
if(count==0){
selectedIds=document.frm1.check1[i].value;
count=count 1;
}
else
selectedIds=selectedIds "," document.frm1.check1[i].value;
}
}
alert(selectedIds);
//document.frm1.action="<%=contextPath%>/AddInterviewPannel?ids=" selectedIds;
//window.close()
// document.frm1.submit();
redirect();
}
function redirect()
{
opener.location.href="<%=contextPath%>/AddInterviewPannel?ids=" selectedIds;
window.close()
}
Комментарии:
1. не могли бы вы, пожалуйста, пояснить, что это не работает?
2. мне нужно передать следующее действие сервлета из всплывающего окна и закрыть окно, как я могу это сделать <%=ContextPath%>/AddInterviewPannel?ids=» selectedIds
3. Не могли бы вы, пожалуйста, проверить мой ответ ниже?
4. да, я проверил это при непосредственном вызове другого jsp-файла, но я хочу вызвать действие сервлета
5. тогда просто URL был бы другим, просто укажите URL сервлета
Ответ №1:
Поместите этот javascript в родительское окно. вызовите эту функцию javascript redirect
в родительской функции с параметром, который необходимо передать как redirect(selectedIds)
обновите перенаправление функции javascript, чтобы принять параметр
function redirect(selectedIds){
opener.location.href="<%=contextPath%>/AddInterviewPannel?ids=" selectedIds;
popupobj.close() // popupobj => have the reference to popup , initialize this with return value of window.open
}
Комментарии:
1. как дать ссылку на всплывающее окно и инициализировать возвращаемым значением, не могли бы вы, пожалуйста, подробнее рассказать об этом. поскольку я сейчас изучаю jsp servlet, я понятия не имею, как это сделать.
2. вызовите функцию перенаправления (selectedIds), используя объект opener, подобный opener.redirect(selectedIds) . Таким образом, вы можете передать значение в javascript в родительском окне.
Ответ №2:
popup.html
<html>
<head>
</head>
<body>
<a href="#" onclick="window.opener.location.href='new.htm';">change parent</a>
</body>
</html>
parent.html
<html>
<head>
</head>
<body>
<a href="#" onclick="window.open('popup.html','kid','resizable=no,scrollbars=no,width=250,height=148,toolbar=no');">click</a>
</body>
</html>
У меня все работает нормально .. Сравните ваш код и выясните причину.