繁体   English   中英

防止弹出后刷新页面

[英]prevent Page refresh after pop-up

当用户单击javascript alert窗口的“ OK按钮时,如何防止页面刷新。

 <asp:Button ID="btnComplete" runat="server" Text="Complete" OnClientClick ="verify_complete()" />


 function verify_complete() {
        if (!chkCmnts()) {
            alert("Categories/comments are required. ");
            return false;
                         }
                             }

谢谢

BB

您已经从JS返回false,因此需要将标记更改为:

<asp:Button ID="btnComplete" runat="server" Text="Complete" OnClientClick ="return verify_complete()" />

如果verify_complete()函数返回true ,它将回发,否则返回。

您不能阻止这种情况,但是可以通过弹出窗口通知用户不应重新加载。 这是通过onbeforeunload窗口事件完成的,最好在MDN上进行记录

将其添加到脚本标签的弹出窗口中

var controllVar = 1;

将此添加到您的父窗口。 (弹出窗口是window.open(...)的返回)。 实际上,这是一些严格的错误测试,因为各种风格的IE都显示了多个Bug。

window.onbeforeunload = function (e) {
  //here we try accessing the popup
  try {
      if(!popup && popup.controllVar != 1) {
          return;
      }
  } catch(e) {
     return;
  }

  e = e || window.event;

  // For IE and Firefox prior to version 4
  if (e) {
    e.returnValue = 'YOUR ERROR MESSAGE';
  }

  // For Safari
  return 'YOUR ERROR MESSAGE';
};

如果将一些文本添加到答案textarea中,然后尝试离开页面,则此行为与Stackoverflow上的行为完全相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM