2012-08-10 92 views
1

我在主页中有一个图标(比如打开)。当我点击这个图标时,一个子窗口将会打开,并且该主页中的图标也会变成“关闭图标”。当关闭该弹出窗口时,该图标应该与主页中的前一个图标(即,打开图标)相同。当我留在同一页面时,它工作正常。如何获取浏览器的子窗口数

但是,当从主页重定向到下一页时,整个页面被重新加载。即使打开弹出窗口,也会显示默认图像(打开图标)。

现在,我的要求是

1)在页面重定向的图像应根据弹出的窗口中加载的时间。即如果弹出窗口打开,它应该显示关闭图标,否则显示打开图标。

2)如果页面刷新或重定向到另一个页面,弹出窗口的引用将被删除。那么我如何才能在重定向页面中获得该弹出窗口的引用。

3)如何算子窗口的编号为浏览器

编辑:

我曾尝试以下解决方案:

1)我设置cookie的在开启时间一个弹出窗口并在我关闭该弹出窗口时重置该cookie。但问题是,在页面重定向时,如果关闭弹出窗口,则Cookie不会重置为之前的值,因为该页面仍在处理中。

2)与会话变量同样的问题也

请帮帮我,在此先感谢

回答

1

设置Cookie会话变量,当你打开和关闭。通过这种方式,您可以在新请求期间记住弹出窗口的状态

+0

感谢您的回复,如果我设置任何cookie或会话变量,则存在一个问题。问题是当我打开窗口,那时我设置了一个会话变量。在页面重定向时,我已关闭该窗口。但页面仍在处理中,当时会话变量不会被重置 – Valli69 2012-08-10 10:46:03

+0

您还可以使用localStorage的'localStorage' – starbeamrainbowlabs 2012-08-10 11:41:51

+0

@starbeamrainbowlabs我可以用什么方式使用localStorage,可以请您多说明一下 – Valli69 2012-08-10 11:49:14

0

当您从一个页面转到另一个页面时,您将失去对弹出窗口的引用。但弹出窗口不会失去对主窗口的引用。 window.opener将始终指向打开它的窗口,即使有页面更改。使用这个事实在导航事件之后重新建立窗口之间的通信。您可能需要使用间隔函数来探测主窗口,因为我不认为您可以侦听事件。

+0

我经历了很多教程,我发现了那个窗口。在页面重定向之后或者如果父页面被刷新,opener对象不再可用。我必须在重定向页面中引用该子窗口对象而不是在主页中。 – Valli69 2012-08-10 11:31:18

+0

你确定吗?只要开启者和弹出窗口具有相同的域和协议匹配,window.opener应该保留。我认为如果调用open()已经到了不同的web站点,可能会失败,因为存储在window.opener中的对象将被污染为属于另一个域。 – cleong 2012-08-11 01:31:46

+0

是的,在我的代码调用open()已经去了不同的网站 – Valli69 2012-08-13 08:58:57