专注于仅使用警报

时间:2013-09-30 11:30:03

标签: javascript jquery focus

我有以下功能,相当简单:

function takeFocus() {
   setTimeout(function(){window.focus();alert("OK");},1000);
} 

这是我从另一个窗口打开的窗口的JavaScript中。

当用户重新打开子窗口时,我想切换到它,并将其带到前面,而不重新加载它。如上所述调用takeFocus()工作正常,但它会抛出我不想要的提示。

当我删除警报时,背景窗口会保留在后台!我怎样才能使它工作?

我已经尝试过各种各样的方法来做到这一点,到目前为止,我已经失败了。

jQuery可用。在HTML5中编写现代浏览器。

2 个答案:

答案 0 :(得分:0)

这个代码在子窗口文件中吗? 尝试使用主页中的焦点,如下所示:

function newPopup(url) {
popupWindow = window.open(
url,'popUpWindow3','height=500,width=900,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=no');
popupWindow.focus();
}

答案 1 :(得分:0)

我有半个答案。通过使用此代码打开窗口,我得到了Chrome中需要的行为。可悲的是FireFox 23.01和IE 10仍然忽略了win.focus()。

function openWin(ID) { // open workshop ID in another window
   var URL = '/chatroom.php?ID='+ID;
   var name = 'Chat'+ID;   // so if you open it twice it reopens the window.
   var win = window.open('',name); // no URL - won't refresh
   if (win.location == "about:blank") { // new open
      win.location.href = URL; 
      windows[windows.length] = win; // store for later.
  }  
  win.focus();
}

FF和IE第一次打开窗口OK,并且它们不会刷新并丢失第二次传递的数据,但它们也不会将它带到前台:(