禁用“您所做的更改可能无法保存”弹出窗口

新手上路,请多包涵

我使用以下前端代码导出 .csv 文档。

HTML

   <form id="tool-export" method="post" action="export/">{% csrf_token %}
    <a id="export-link" class="btn btn-sm btn-primary" href="#">DOWNLOAD</a>
  </form>

JS

   $('#export-link').click(function(e) {
    e.preventDefault();
    var link = $(this);
    var form = link.closest('form');

    var project_id = proj_id.find(":selected").val();
    var input = $('<input>').attr('type', 'hidden').attr('name', 'project_id').val(project_id);
    form.append($(input));

    var project_type = proj_type.val();
    input = $('<input>').attr('type', 'hidden').attr('name', 'project_type').val(project_type);
    form.append($(input));

    form.submit();
  });

导出效果很好,我得到了正确的文档。但在单击导出链接后,我也收到了 您所做的更改可能无法保存 的消息。如何禁用此消息?我不想看到它。

在此处输入图像描述

原文由 srgbnd 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

@Dekel 帮助我得到它。

该消息是 beforeunload 事件。我可以用 window.onbeforeunload = null; 禁用它。

JS

   $('#export-link').click(function(e) {
    window.onbeforeunload = null;
    e.preventDefault();
    var link = $(this);
    var form = link.closest('form');

    var project_id = proj_id.find(":selected").val();
    var input = $('<input>').attr('type', 'hidden').attr('name', 'project_id').val(project_id);
    form.append($(input));

    var project_type = proj_type.val();
    input = $('<input>').attr('type', 'hidden').attr('name', 'project_type').val(project_type);
    form.append($(input));

    form.submit();
  });

原文由 srgbnd 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 jQuery 中只需使用:

 $(window).off('beforeunload');

原文由 Neha Jaggi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏