window.opener.focus()不起作用

Pau*_*per 8 javascript browser window

我似乎无法让这个工作.

响应点击,窗口A打开窗口B(然后具有焦点).然后,响应第B点击,窗口电话window.opener.focus(),但重点不回A.

我发现Chrome有一个奇怪的,奇怪的解决方法(29,可能还有其他).如果我跑:

window.opener.name = 'somename';
window.open(window.opener.location.href, window.opener.name);
window.opener.focus();
Run Code Online (Sandbox Code Playgroud)

它确实有效(并且没有重新加载窗口A).但这对Firefox不起作用,无论如何它可能都是侥幸.

在我看来,非常清楚openerfocus认为做的,但window.opener.focus()不起作用.我错过了什么?

mu *_*ort 5

精细手册:

发出请求将窗口置于前面.它可能由于用户设置而失败,并且在此方法返回之前不保证窗口位于最前面.

强调我的.调用focus()只是一个请求,浏览器可以自由地忽略你,你通常应该被忽略.如果您需要某些原因导致浏览器忽略您的请求,请考虑在有人打字的时候将焦点切换到一个小窗口,从而考虑可以达到的各种邪恶事物.

如果您需要focus()为您的应用程序工作,那么您需要重新设计您的应用程序,以便它不需要调用focus().

  • (1)“可能由于用户设置而失败。” 哪些用户设置导致了这种情况?(2)“在此方法返回之前,不能保证窗口位于最前面。” 我不在乎通话结束时是否在前面;我只想最终将它放在前面。 (2认同)