Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果单击是在模式对话框之外进行的,如何禁用用户进行的所有单击_Javascript_Asp.net_Modal Dialog - Fatal编程技术网

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),但现在它不起作用了。你能给我一个建议吗?