我要求我需要创建一个链接以在新窗口中打开表单,然后当我单击相同的链接时,它将再次关注现有窗口。
这适用于以下代码
<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
不会保留先前的引用。
如果我再次点击链接,它将刷新现有窗口(这不是我想要的!)然后专注于它。
有什么方法可以保持变量引用吗?或者有谁知道如何解决这个问题?
答案 0 :(得分:2)
Chia,你的问题是JS不会跨页面持久存在。 HTML是无状态的,因此位于顶部的JS在转到第2页和第3页之后还需要“忘记”在第1页上执行的操作。
有一些方法可以存储字符串和数字,并在其他页面上检索它们,但这不是你想要的。
为此,使用您当前的设置,您无法真正做到。
有不同的方法可以让你保留子引用(在主页面的iFrame中进行主页导航...如果你真的,真的必须...或者页面中的AJAX更改,拥有功能强大的浏览器的人,并使用老式导航用于浏览器的JS引擎更糟糕。)
但是你不可能打开window2,点击指向第3页的window1的链接,并且仍然有page3引用window2。
答案 1 :(得分:2)
我遇到了同样的问题,并在Window.open only if the window is not open
上得到了解决如果您基本上希望在单击链接时聚焦窗口而不是刷新窗口,即使父窗口已关闭,重新打开或更改,这也可以解决问题。
我准备使用cookies。