【问题标题】:Popup Window Setting Focus弹出窗口设置焦点
【发布时间】:2012-07-08 23:32:42
【问题描述】:

我有一个名为 myWindow 的弹出窗口,当它弹出时,我希望焦点位于原始窗口上,而不是弹出窗口。我取出了myWindow.focus();这一行,它仍然专注于弹出窗口。有谁知道创建弹出窗口时如何将焦点保持在原始窗口上?长寿和繁荣。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function openWin()
{
myWindow=window.open('','','width=200,height=100');
myWindow.document.write("<p>This is 'myWindow'</p>");
myWindow.focus();
}
</script>
</head>
<body>

<input type="button" value="Open window" onclick="openWin()" />

</body>
</html>

【问题讨论】:

标签: javascript function popup window


【解决方案1】:

请致电window.focus() 而不是myWindow.focus()


如果这不起作用,请尝试模糊窗口然后重新聚焦:

window.blur();
window.focus();

【讨论】:

  • 好主意,但没有奏效。我开始认为我想做的事情是不可能的......
【解决方案2】:

在打开弹出窗口后立即调用window.focus(),无论是在函数中还是在它之后:

<input type="button" value="Open window" onclick="openWin(); window.focus();" />

function openWin()
{
myWindow=window.open('','','width=200,height=100');
myWindow.document.write("<p>This is 'myWindow'</p>");
window.focus();
}

【讨论】:

  • 在函数中包含它会更有意义。
  • @sachleen - 如果他不想在每次调用 openWin() 时将焦点重新设置回主窗口,则不会。但我编辑了我的答案以显示两种方式。
  • @JohnDoe - 你用的是什么浏览器?我测试了这段代码,它在 Chrome 中运行良好。
  • 是的,它在 IE 中工作,它一定不能在 MZF 中工作..感谢您的帮助
  • @jeff 是的,但这就是他尝试的解决方案。 :p
【解决方案3】:

我遇到了同样的问题。我找到了解决方法。

我是这样修改的:

myWindow.document.write("<p>This is 'myWindow'</p>");
myWindow.document.write("<script>window.opener.focus();</script>");

它在 FF 和 Chrome 中对我有用。

【讨论】:

  • 或者像这样重写myWindow.document.write('&lt;script&gt;window.onload = function () { window.opener.focus() }&lt;/script&gt;');
【解决方案4】:

在现代浏览器中,似乎无法聚焦原始窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多