PopUp Blocker验证

Luc*_*tos 0 .net javascript c# asp.net jquery

如何检查客户端浏览器是否通过C#打开了弹出窗口阻止程序?

我试着像这样打开一个弹出窗口

ClientScript.RegisterStartupScript(this.GetType(), "newWindow", String.Format("<script>window.open('{0}', 'Cliente', 'toolbar=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=no', '720', '600', 'true'); </script>", url));
Run Code Online (Sandbox Code Playgroud)

但是如果浏览器有一个弹出窗口拦截器,我需要打开一个警报

我怎样才能做到这一点 ?

Ica*_*rus 5

你可以这样做:

ClientScript.RegisterStartupScript(this.GetType(), "newWindow", String.Format("<script>var myPopup = window.open('{0}', 'Cliente','toolbar=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=no','720', '600', 'true');if(!myPopup)alert('a popup was blocked. please make an exception for this site in your popup blocker and try again');</script>",url));
Run Code Online (Sandbox Code Playgroud)

注意:没有测试它是否编译,但这是一般的想法.

看到这个其他类似的问题

编辑 -添加测试:

string mys="<script>var myPopup = window.open('{0}', 'Cliente','toolbar=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=no','720', '600', 'true');if(!myPopup)alert('a popup was blocked. please make an exception for this site in your popup blocker and try again');</script>";

Console.WriteLine(string.Format(mys,"page.aspx"));
Run Code Online (Sandbox Code Playgroud)

生产:

<script>var myPopup = window.open('page.aspx', 'Cliente','toolbar=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=no','720', '600', 'true');if(!myPopup)alert('a popup was blocked. please make an exception for this site in your popup blocker and try again');</script>
Run Code Online (Sandbox Code Playgroud)

我没有看到任何错误.现在,我的建议是你删除<script></script>标签,让RegisterStarupScript通过传递true最后一个参数来添加它们:

ClientScript.RegisterStartupScript(this.GetType(), "newWindow", String.Format("var myPopup = window.open('{0}', 'Cliente','toolbar=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=no','720', '600', 'true');if(!myPopup)alert('a popup was blocked. please make an exception for this site in your popup blocker and try again');",url),true);
Run Code Online (Sandbox Code Playgroud)