通过名称检测窗口是否存在

时间:2014-01-20 01:34:49

标签: javascript window

是否可以通过窗口名称检测javascript中是否存在窗口?

我的情况是这样的:

我打开一个弹出窗口或新的浏览器标签。

然后我刷新打开弹出窗口/新标签的窗口。

所以我的代码在窗口开启器中再次运行,所以我无法保存对打开的弹出窗口/标签的引用。

我可以使用cookie,但是当我关闭弹出窗口/标签时我需要删除cookie,我不认为有一种方法可以检测到这一点,弹出/标签已关闭(当然是跨浏览器,和ios!)

如果我可以保存一个弹出/标签窗口名称参考,那么我可以在开窗器中检查我打开的弹出/标签是否仍然存在?

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该能够保留对刚刚打开的窗口的引用。

来自 MDN:

的示例
var windowObjectReference = window.open(strUrl, strWindowName[, strWindowFeatures]);

该文章有一些关于重新打开同一窗口等的其他信息;

修改:从上面链接的MDN文章:

  

如果已存在名为strWindowName的窗口,则strUrl为   加载到现有窗口中。在这种情况下的返回值   method是现有窗口,strWindowFeatures被忽略。   为strUrl提供空字符串是获取对a的引用的一种方法   按名称打开窗口而不更改窗口的位置。至   在每次调用window.open()时打开一个新窗口,使用特殊的   strWindowName的值为_blank。

所以这样的事情应该有效:

var whandle = 'persistantWindow';
var w1 = window.open('http://yoururl.org/page1.html', whandle);     // <- open a window with a name
var w2 = window.open('http://yoururl.org/page2.html', whandle);     // <- by re-using the same name, the new url will be opened in the same window