是否可以通过窗口名称检测javascript中是否存在窗口?
我的情况是这样的:
我打开一个弹出窗口或新的浏览器标签。
然后我刷新打开弹出窗口/新标签的窗口。
所以我的代码在窗口开启器中再次运行,所以我无法保存对打开的弹出窗口/标签的引用。
我可以使用cookie,但是当我关闭弹出窗口/标签时我需要删除cookie,我不认为有一种方法可以检测到这一点,弹出/标签已关闭(当然是跨浏览器,和ios!)
如果我可以保存一个弹出/标签窗口名称参考,那么我可以在开窗器中检查我打开的弹出/标签是否仍然存在?
谢谢!
答案 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