【问题标题】:How to focus opener window in Chrome?如何在 Chrome 中聚焦开启器窗口?
【发布时间】:2012-12-28 15:46:57
【问题描述】:

Focus opener 窗口在 Chrome 中不起作用...

示例 1。

popunder=window.open('http://google.com','asdf','width=800,height=800');
popunder.blur();
popunder.opener.window.focus();

示例 2。

popunder=window.open('http://google.com','asdf','width=800,height=800');
popunder.blur();

x = popunder.window.open('about:blank');
x.close();

popunder.opener.window.focus();

示例 3。

popunder=window.open('http://google.com','asdf','width=800,height=800');
popunder.blur();
window.focus();

例如……等等。

有人知道可行的解决方案吗?

【问题讨论】:

  • 不要创建弹出窗口。没有人喜欢他们。
  • 我知道,但没有人问我。酋长说:“做它!”。 ://
  • @rjanjic 你试过用https吗?

标签: javascript google-chrome


【解决方案1】:

目前在 Chrome 中唯一有效的解决方案是新窗口中的这段代码:

$(".closeBtn").click( function(e) 
{
    window.open("",window.opener.name);
});

不幸的是,该解决方案仅在两种情况下有效:

  • window.opener 必须在加载文档时设置名称 (window.name="WhateverName";)
  • window.open() 在用户点击时被调用

【讨论】:

  • 效果很好,谢谢!此外,如果您在新窗口的框架中(我分享您的痛苦),请使用此代码来聚焦开启器窗口:window.open("", window.top.opener.name);
  • 看起来你可以命名开瓶器... var randomName = 'a' + Math.random(); window.opener.name = 随机名称; window.open('', randomName);但即使这样也可能并不总是奏效。 :(
  • 其他人可以确认吗?如果这是事实,我将删除答案
【解决方案2】:

我也在处理这个问题,目前最新的 Canary build 26 打破了我所知道的所有 hack。我知道仍有一些网站正在解决这个问题,但不知道如何解决。

jquery popunder,但前提是你有可用的jquery。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2018-04-06
    • 1970-01-01
    相关资源
    最近更新 更多