javascript - 在 Google Chrome 中,如何使用父窗口中的 javascript 将现有的弹出窗口置于最前面?

标签 javascript google-chrome popup

我想在网页上有一个具有以下行为的按钮:

  • 第一次点击时,打开一个弹出窗口。
  • 在稍后的点击中,如果弹出窗口仍处于打开状态,则将其移至最前面。如果没有,请重新打开。

以下代码适用于 Firefox(Mac 和 Windows)、Safari(Mac 和 Windows)和 IE8。 (我还没有测试过 IE6 或 IE7。)但是,在谷歌浏览器(Mac 和 Windows)中,稍后的点击无法按需要将现有的弹出窗口置于最前面。

我怎样才能在 Chrome 中使用它?

<head>
  <script type="text/javascript">
    var popupWindow = null;
    var doPopup = function () {
      if (popupWindow && !popupWindow.closed) {
        popupWindow.focus();
      } else {
        popupWindow = window.open("http://google.com", "_blank",
          "width=200,height=200");
      }
    };
  </script>
</head>

<body>
  <button onclick="doPopup(); return false">
    create a pop-up
  </button>
</body>

背景:我正在重新询问 this question专门针对谷歌浏览器,因为我认为我的代码至少解决了其他现代浏览器和 IE8 的问题。如果有这样做的首选礼仪,请告诉我。

最佳答案

你不能。出于安全原因,Window.focus 在 Chrome 中被禁用,而且不太可能改变。

您必须关闭并重新打开相应的窗口。

关于javascript - 在 Google Chrome 中,如何使用父窗口中的 javascript 将现有的弹出窗口置于最前面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2703314/

相关文章:

android - 谷歌地图在 Chrome 移动版中无法交互

google-chrome - 编写 indexeddb 时的 chrome 行为。 "data may be stale"

jquery - 是否可以在 onbeforeunload 触发调用的同时显示 jquery 弹出窗口?

Javascript - 使用 Javascript 生成 HTML 元素时,放大的弹出窗口不起作用

Android - 定时器功能和 alertDialog

javascript - toSource 在 Internet Explorer 中

javascript - 将函数传递给工具提示

css - 如何更改:-webkit-autofill?的样式

javascript - 使用javascript查找最上层父窗口

javascript - 取消选中复选框将取消选中表中的其他复选框