asp.net - 如果我希望单击“有时”仅打开一个新窗口,我可以避免进行同步回调吗?

标签 asp.net jquery popupwindow popup-blocker

在这种情况下:

  • 用户在文本框中输入一些信息
  • 用户点击按钮
  • 服务器端对输入的信息进行处理
  • 根据服务器端处理的结果,或者打开一个新窗口,或者在当前页面上显示一条消息(并且无弹出窗口)

除了在 jQuery ajax 调用中使用 async: false 之外,我想不出其他方法,即 strongly discouraged :

Setting this option to false (and thus making the call no longer asynchronous) is strongly discouraged, as it can cause the browser to become unresponsive.

我已经尝试过:

  • 让调用异步并在回调处理程序中进行,具体取决于服务器所说的内容,有时会打开一个新窗口 - 这会被弹出窗口阻止程序阻止
  • 另一个想法,由于它的不愉快,我什至没有打扰过,就是总是打开一个窗口,正是这个窗口调用服务器,有时会自行关闭(不知何故)在父级中退出时更新文本)

我已经确定的是上面描述的内容:在点击处理程序中,执行同步服务器调用,如果服务器要求这样做,打开一个新窗口。弹出窗口拦截器对此很满意,因为窗口打开是在点击处理程序中完成的。但是...

<小时/>

类似(但不重复,因为我总是不想打开一个新窗口)的问题没有提供很好的解决方案:

最佳答案

你能做的是,

尝试在页面上设置一个隐藏字段,该字段将在服务器端由 true 或 false 之类的值设置,您可以稍后在 jquery 文档 .ready 函数中检查该字段

如果值为 false,则仅显示一条消息,否则弹出一个新窗口

就这么简单

关于asp.net - 如果我希望单击“有时”仅打开一个新窗口,我可以避免进行同步回调吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174843/

相关文章:

c# - LINQ to Entities 无法识别方法...方法,并且该方法无法转换为存储表达式。

asp.net-mvc - 如何在使用Jquery UI选项卡和Custom Error处理程序时捕获Ajax错误

javascript - 用另一个 Javascript 调用停止 Javascript 函数?

asp.net - ASP.NET 中的 Cookie

asp.net - AJAX、回发和浏览器刷新

javascript - 冲突的 "back to top"脚本 - 如何解决?

jquery - jQuery AJAX 调用中的内存泄漏

android - 弹出窗口有问题

javascript - Window.open使页面变成弹出 block

c# - 无法将类型为 'System.Web.UI.WebControls.GridView' 的对象转换为类型 'System.Web.UI.WebControls.LinkButton'