繁体   English   中英

弹出窗口打开时灰显背景

[英]Gray-out the background when popup opens

我点击链接/文本框或按钮下面的javascript调用。

function OpenPopupLinkRisk(Number) 
{
    window.open("../PopUp.aspx?id=" + Number, "List", "scrollbars=no,resizable=yes,width=700,height=450");
    return false;
}

在关闭弹出窗口之前,我不希望用户做任何其他事情。 那么我怎样才能灰色背景并强制用户先关闭弹出窗口,然后在应用程序上执行任何其他活动。

任何人都可以建议我如何实现这一目标?

谢谢 !

首先,我真的不赞成使用window.open,除非你真的需要一个新的浏览器弹出窗口。 如果你想坚持使用persee,那么必须使用计时器或其他东西来手动检查窗口何时关闭,如:

var popup = window.open('http://www.example.com', 'example', '');   
var timer = setInterval(function() {   
    if(window.closed) {  
        clearInterval(timer);  
        alert('Closed alright');  
    }  
}, 100);  

另外,查看一些关于这个主题的教程, Modal Popup

首先直接解决你的问题,我不建议使用它然后你应该采取的方法,从可用性和安全的角度来看更好。

检查弹出窗口是否已关闭

// mask your page
mask();

// open popup
var popup = window.open("../PopUp.aspx?id=" + Number);

// check whether it's been closed
function check()
{
    if (popup && !popup.closed)
    {
        setTimeout(check, 1000);
    }

    // unmask your page
    unmask();
}
check();

现代(和更好)的替代品

使用window.open是一个糟糕的解决方案,因为它存在安全风险,弹出窗口阻止程序阻止站点打开新窗口。 这也被认为是不好的做法。

一个更好的现代替代方案是直接在页面内显示新页面作为模态窗口。 这不会打开新窗口,用户会保持原样。

模态窗口有大量的javascript插件。 进行Google搜索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM