Javascript 防止window.open()刷新窗口

Javascript 防止window.open()刷新窗口,javascript,google-chrome,Javascript,Google Chrome,我希望你是伟大的! 有人能解释一下吗 用例 页面A打开带有窗口的页面B。打开() 刷新页面A,并再次尝试使用window.open()聚焦页面B 代码 if(!window.memwin | | window.memwin.closed){ window.memwin=window.open(URL,“windowName”,“true”) } window.memwin.focus(); 问题 焦点出现在页面B上,但页面被重新加载。有没有办法克服这个问题? 我希望B页在不重新加载的情况下

我希望你是伟大的! 有人能解释一下吗

用例

  • 页面A打开带有窗口的页面B。打开()

  • 刷新页面A,并再次尝试使用window.open()聚焦页面B

  • 代码

    if(!window.memwin | | window.memwin.closed){
    window.memwin=window.open(URL,“windowName”,“true”)
    }
    window.memwin.focus();
    
    问题

    焦点出现在页面B上,但页面被重新加载。有没有办法克服这个问题? 我希望B页在不重新加载的情况下保持焦点


    *(如果未重新加载页面A,则使用window.open()将焦点转到页面B)

    似乎有办法解决此问题

    • 在cookie中,我保存窗口的状态(打开/关闭)

    • 使用此选项创建窗口

    window.open(URL,“windowName”,“true”)
    
    • 使用此选项可将焦点调回窗口
    window.open(“”,“windowName”,“”,true)
    

    通过这样做,用户将能够从任何地方聚焦页面B。我们唯一需要知道的是窗口名,如果它仍然是打开或关闭< /p>我会认为这是一个安全问题,如果任何窗口都可以在分离后访问其他窗口。确实,但是我能做些什么来获取对窗口对象的引用呢?我认为唯一可能的方法是,如果你把它放到本地存储中,而不是当前的窗口实例中(因为它在重新加载时会被破坏)。由于序列化,它可能无法工作,但值得一试。更好、更现代的方法是不使用外部窗口,而是将内容放在一个窗口中,并使用ajax和适当的div容器。