【问题标题】:How can I bring an old popup to the foreground instead of opening a new one?如何将旧弹出窗口带到前台而不是打开新弹出窗口?
【发布时间】:2011-11-21 22:00:24
【问题描述】:

我正在考虑在弹出窗口中打开我的应用程序的帮助页面1。我的问题是如果用户多次点击帮助按钮,我不想打开多个弹出窗口

是否有可能以跨浏览器的方式重复使用旧的弹出窗口而不是打开新的弹出窗口?。我希望我能把它带回前台2 或类似的东西。

在最坏的情况下,我认为我可以回到基于 div 的 Javascript 对话框,但如果可能的话,我宁愿避免这样做。


1 大多数普通桌面应用程序都使用弹出窗口来显示帮助对话框,所以我认为这个选择没有任何问题。

另外,我认为在我的情况下,从实际角度(我不希望人们在我的单页应用程序中浏览太多)和从技术角度(帮助内容是通过 Javascript 创建的,使用 popups + document.write 对我来说更灵活)

2 与 Windows 桌面应用程序的一些比较:如果您尝试再次打开旧的帮助窗口,Windows 资源管理器和 IE 会重新聚焦它。 Office 应用程序的帮助窗口始终位于顶部。 Firefow 和 Chrome 只是打开一个新的浏览器选项卡(如果你再试一次,可以打开多个)

【问题讨论】:

  • 我知道this question,但它只说“不要这样做”,所以我的好奇心没有得到满足......

标签: javascript popup user-experience


【解决方案1】:

我通常只使用focus()

 function help_open(id) {
 newwindow = window.open('help.php?id=' + id, 'popup_return',     'menubar=no,history=no,resizable=yes,scrollbars=yes,toolbar=no,width=800,height=600');
if (window.focus) {newwindow.focus()}
   }

【讨论】:

  • 嗯,原来我只是被 Chrome not implementing 这个方法误导了...
  • 原来我需要将实际数据放入窗口才能完成这项工作。浏览器似乎忽略了关于 about:blank 的 window.focus() 调用
【解决方案2】:
<a href="something" target="yourname">

当你的名字相同时,同一个窗口将被聚焦

【讨论】:

    猜你喜欢
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多