0

我有一个要求,我需要创建一个链接以在新窗口中打开表单,然后当我单击相同的链接时,它将再次关注现有窗口。

这适用于以下代码

<input type="button" value="Click" onclick = "return OpenWindow();"/>

<script>
var win = null;
function OpenWindow()
{
   if (win == null || win.closed)
   {
      win = window.open('http://localhost/Conditions.aspx', 'Condition');
   }
   win.focus();
   return false;
}
</script>

但是,当我切换到不同的页面并返回具有链接的页面时,我遇到了一个问题。该变量win不会保留以前的引用。如果我再次单击该链接,它将刷新现有窗口(这不是我想要的!)然后专注于它。

有什么方法可以保留变量引用吗?或者有谁知道如何解决这个问题?

4

2 回答 2

2

Chia,您的问题是 JS 不会跨页面持续存在。HTML 是无状态的,因此在您转到 page-2 和 page-3 之后,位于顶部的 JS 还需要“忘记”它在 page-1 上所做的事情。

有一些方法可以存储字符串和数字,并在其他页面上检索它们,但这不是您想要的。

为此,您目前的设置无能为力。

有不同的方法可以让您保留子引用(在主页的 iFrame 内进行主页导航......如果你真的,真的必须......或者页面中的 AJAX 更改,对于有能力的人浏览器,并为 JS 引擎较差的浏览器使用老式导航)。

但是您不可能打开window2,单击将window1 指向page3 的链接,并且仍然让page3 具有对window2 的引用。

于 2012-10-12T02:46:04.920 回答
2

我有同样的问题,只有在窗口未打开时才在 Window.open上解决

如果您基本上希望在单击链接时窗口聚焦而不是刷新,即使父窗口已关闭、重新打开或更改,这也可以解决问题。

我正要求助于使用cookies。

于 2012-11-16T22:41:54.483 回答