javascript - 将弹出窗口置于最前面

标签 javascript jquery html

在我的应用程序中,我有一个弹出窗口,其中包含在我选择某些选项时打开的信息。

第一次还行,弹出高亮在所有的前面。

但是,当它失去焦点时,当用户转到其他窗口时,如果用户再次单击同一选项,我希望弹出窗口再次显示在所有内容的前面。

我试过类似的方法:

<body onLoad="this.focus()">
window.focus();   
document.focus();  
this.focus();  

但这对我不起作用。

我错过了什么?

最佳答案

您应该维护对您打开的弹出窗口的引用,并在其上调用 focus 方法。

var win = window.open(url, name, args);
win.focus();

在打开弹出窗口时,如果您给了一个名字,下次当您打开一个具有相同名称的弹出窗口时,如果它没有关闭,它将使用相同的弹出窗口。你只需要专注于它。

您可以使用这个简单的函数来处理弹出窗口

function windowOpener(url, name, args) {

    if(typeof(popupWin) != "object" || popupWin.closed)  { 
        popupWin =  window.open(url, name, args); 
    } 
    else{ 
        popupWin.location.href = url; 
    }

    popupWin.focus(); 
 }

关于javascript - 将弹出窗口置于最前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9008835/

相关文章:

javascript - 所有 Node.js/Express 路由在托管服务器上返回 404

javascript - 从 JointJS 图中按 ID 删除链接?

javascript - Bootstrap 导航栏后面的空间

javascript - 解释: jQuery Caching Code

Python HTML 解析标签内的特定信息

html - 使 flex 元素重叠

javascript - codeigniter 尝试使用 javascript 从 View 访问 session 数据

jquery - Pager.js + History.js + Require.js - "Unable to get property ' 未定义或空引用的绑定(bind)”

javascript - mouseup 后从复选框标签中删除焦点样式的可访问、键盘友好的方法

Java - 捕获html标签