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

srg*_*bnd 10 javascript jquery

我使用以下前端代码导出.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>
Run Code Online (Sandbox Code Playgroud)

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();
  });
Run Code Online (Sandbox Code Playgroud)

出口运作良好,我得到了正确的文件.但是,我也会在点击导出链接后收到您所做更改可能无法保存的消息.如何禁用此消息?我不想看到它.

在此输入图像描述

srg*_*bnd 12

@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();
  });
Run Code Online (Sandbox Code Playgroud)

  • **window.onbeforeunload = null;** 在 Chrome 和 IE 中工作,但在 Firefox 中仍然会弹出窗口。 (3认同)

Neh*_*ggi 6

在 jQuery 中只需使用:

$(window).off('beforeunload');
Run Code Online (Sandbox Code Playgroud)