【问题标题】:How to open new window from parent window, then later close when parent window loads specific page?如何从父窗口打开新窗口,然后在父窗口加载特定页面时关闭?
【发布时间】:2015-06-15 17:51:20
【问题描述】:

注意:我只能在 IE11 开发者控制台中使用 JavaScript。

在我的父窗口 (www.mysite.com/1.html) 上,页面上有一个链接可以在单独的窗口 (www.mysite.com/9.html) 中打开一个新页面。

在 mysite.com/1.html (parent?) 中,我需要点击(或打开)指向 mysite.com/9.html (child? 的链接em>) 作为一个单独的窗口。 然后从父窗口,我需要去 mysite.com/2.html。 然后,在同一个父窗口中,我需要转到 mysite.com/3.html。

现在,当我的父窗口到达 mysite.com/3.html 时,我需要以某种方式关闭子窗口(或关闭所有非父窗口)。

如何通过调用父窗口中的函数来做到这一点?

我知道在窗口中加载新页面时会重置/销毁变量。但是有没有一种方法可以利用 cookie 到我的父窗口记住:“哦,是的!我打开 9.html 前一段时间。我什至给/分配了一个名字!是时候关闭它了。”

【问题讨论】:

标签: javascript internet-explorer internet-explorer-11


【解决方案1】:

通过 javascript 打开您的窗口,以便您可以在它们上调用 window.close()。看这个例子http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_close2

<script>
var myWindow;

function openWin() {
    myWindow = window.open("http://www.w3schools.com", "_blank", "width=500, height=500");
}

function closeWin() {
    myWindow.close();
}
</script>

要在刷新父级时关闭子级,请在脚本中添加此代码

function closeIt()
{
  myWindow.close();
}
window.onbeforeunload = closeIt;

【讨论】:

  • 这是我遇到的问题的一个很好的例子!当我触发 openWin() 时,窗口可以正常打开,也可以使用 closeWin() 正常关闭。但是当我触发 openWin(),然后刷新父窗口时,即使变量 'myWindow' 仍然存在于重新加载的页面上并且没有改变,closeWin() 也不再起作用。我可以做些什么让 closeWin() 仍然有效吗?
  • 在您的 url 中使用您通过 javascript 读取的参数或使用 cookie
  • 您能给我举个例子来说明如何使用 cookie 吗?我尝试使用document.cookie = "myWindow=" + myWindow; 存储变量myWindow,然后从刷新的页面中获取变量并将其保存为同名变量(myWindow = getCookie("myWindow");),但这仍然没有让父窗口识别孩子之前打开的窗口。
  • 我在答案中添加了代码以在刷新父窗口时关闭子窗口
  • 效果很好!谢谢!但是有没有办法通过在新的、刷新的父页面上触发一个函数来关闭子窗口?
猜你喜欢
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 2012-07-09
  • 2023-03-07
  • 1970-01-01
  • 2011-01-19
  • 2013-02-14
相关资源
最近更新 更多