2012-07-09 168 views
4

我有一个名为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> 
+2

+1“Live Long and Prosper”。 -1没有绑定你的事件处理程序在JavaScript中。 – jbabey 2012-07-09 14:39:55

+0

查看http://stackoverflow.com/questions/7996252/window-popups-how-to-get-window-blur-or-window-focus-to-work-in-firefox-4 – j08691 2012-07-09 14:41:57

+0

我将不胜感激只是一个+ 1请,因为我是新的这个... :) – 2012-07-09 14:49:46

回答

3

就叫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(); 
} 
+0

这将是更有意义的将它包括在函数中。 – sachleen 2012-07-09 14:41:32

+0

很好的建议,但仍然没有工作... – 2012-07-09 14:42:44

+0

@sachleen - 如果他不想每次调用openWin()时都将焦点设置回主窗口,则不需要。但我编辑了我的答案,以两种方式展示。 – jeff 2012-07-09 14:44:59

4

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


如果这不是工作,尝试模糊的窗口,然后重新聚焦它:

window.blur(); 
window.focus(); 
+0

好主意,但没有奏效。即时开始认为我想要做的事是不可能的... – 2012-07-09 14:40:21

+0

仍然没有运气... – 2012-07-09 14:44:20

+0

实际上它的工作原理,只是不在MZF – 2012-07-09 14:47:56

1

我正面临同样的问题。我找到了一个解决方法。

我修改这样的:

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

它在FF和Chrome为我工作。

+0

或者像这样重写 'myWindow.document.write(''); – 2012-11-09 05:42:26