点击链接/文本框或按钮,我在下面调用javascript。
function OpenPopupLinkRisk(Number)
{
window.open("../PopUp.aspx?id=" + Number, "List", "scrollbars=no,resizable=yes,width=700,height=450");
return false;
}
我不希望用户做任何其他事情,直到他关闭弹出窗口。那么我怎样才能灰色背景并强制用户先关闭弹出窗口,然后在应用程序上执行任何其他活动。
有谁能建议我如何实现这个目标?
谢谢!
答案 0 :(得分:2)
首先,我真的不赞成使用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
答案 1 :(得分:2)
首先直接解决你的问题,我不建议使用它然后你应该采取的方法,从可用性和安全的角度来看更好。
// 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搜索。