问题陈述
1)我有一个页面A,它使用window.open()打开一个弹出窗口。
2)B收集一些用户信息并将其发送到java控制器,后者在处理后将重定向URL返回给B.
3)B然后使用window.open('www.temp.com/qq/rr.jsp',_ self)打开此重定向网址(www.temp.com/qq/rr.jsp)。
4)在www.temp.com/qq/rr.jsp上,用户执行一些操作,完成后,www.temp.com / qq / rr.jsp调用第B页。
5)一旦调用B,根据某些条件,应关闭此弹出窗口(第B页),并将页面A替换为第D页。
我无法使用window.opener.location.href将页面A替换为D.
请告知。
答案 0 :(得分:0)
这里的关键是保留开窗器。一旦他们离开,这就失去了。诀窍是始终使用父窗口进行导航。您将调用父窗口,而不是window.open,并告诉IT更改子窗口的位置。
在第A页:
var b = window.open('b.html');
function setChildWindowLocation(href) {
b.location.href = href;
}
在第B页:
function getRedirectUrl() {
var href = ajax(); //this is obviously psuedo-code for getting the redirect url
window.opener.setChildWindowLocation(href);
}
function checkCondition(condition) {
if (condition)
{
//this will work, because we still have an opener
window.opener.location.href = 'D.html';
window.close();
}
}
在第RR页:
function goBackToPageB() {
window.opener.setChildWindowLocation('B.html');
}