我有以下功能,相当简单:
function takeFocus() {
setTimeout(function(){window.focus();alert("OK");},1000);
}
这是我从另一个窗口打开的窗口的JavaScript中。
当用户重新打开子窗口时,我想切换到它,并将其带到前面,而不重新加载它。如上所述调用takeFocus()
工作正常,但它会抛出我不想要的提示。
当我删除警报时,背景窗口会保留在后台!我怎样才能使它工作?
我已经尝试过各种各样的方法来做到这一点,到目前为止,我已经失败了。
jQuery可用。在HTML5中编写现代浏览器。
答案 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,并且它们不会刷新并丢失第二次传递的数据,但它们也不会将它带到前台:(