Javascript 如果单击是在模式对话框之外进行的,如何禁用用户进行的所有单击
在我当前的项目中,我打开了一个模式对话框,点击一个按钮就会打开,Javascript 如果单击是在模式对话框之外进行的,如何禁用用户进行的所有单击,javascript,asp.net,modal-dialog,Javascript,Asp.net,Modal Dialog,在我当前的项目中,我打开了一个模式对话框,点击一个按钮就会打开, 现在,如果用户单击模式对话框之外的任何位置,浏览器应忽略该单击,并且模式对话框应得到关注,如何实现这一点?检查模式对话框和相关技术。假设您对对话框使用jQuery UI,则该选项是内置的。如果没有,您可以检查它的实现 以下是一个没有依赖关系的简单实现: 显示模式对话框时,禁用背景点击的标准方法是创建一个(半透明)的div(带有背景图像),并使用该div拦截所有点击 您的对话框将放置在此透明分区上 像jQuery这样的框架可以为您做
现在,如果用户单击模式对话框之外的任何位置,浏览器应忽略该单击,并且模式对话框应得到关注,如何实现这一点?检查模式对话框和相关技术。假设您对对话框使用jQuery UI,则该选项是内置的。如果没有,您可以检查它的实现 以下是一个没有依赖关系的简单实现:
显示模式对话框时,禁用背景点击的标准方法是创建一个(半透明)的div(带有背景图像),并使用该div拦截所有点击 您的对话框将放置在此透明分区上 像jQuery这样的框架可以为您做到这一点,因此您不必担心js是否正确
看一看 文档或窗口有一个名为onblur的事件,您需要设置一个函数,在用户单击其他窗口时,该函数会将窗口的焦点带回弹出窗口 伪代码如下所示:
<script>
function bringBackFocus()
{
window.focus();
}
</script>
<body onBlur="bringBackFocus()">
</body>
函数bringBackFocus()
{
window.focus();
}
在jqueryui对话框中,您会发现一个名为Modal的属性将其设置为true,它将禁用对话框之外的所有内容
或者另一种方法是
$("*:not('#dialog')").on("click",function(){
// do focusing on button or anything you want...
return false;
})
弹出是指打开一个新的浏览器窗口。你在这里所做的被称为模态对话。谢谢,它起作用了。但以前我通过调用我的方法SetValues(personNAme,PhoneNumber)来传递值,方法是window.opener.SetValues(personNAme,PhoneNumber),但现在它不起作用了。你能给我一个建议吗?这应该可以,但是你最好使用一个模式对话框打开一个新窗口。谢谢,它起作用了。但以前我通过调用我的方法SetValues(personNAme,PhoneNumber)来传递值,方法是window.opener.SetValues(personNAme,PhoneNumber),但现在它不起作用了。你能给我一个建议吗?