1. ホーム
  2. javascript

[解決済み] 変更した内容が保存されない可能性があります」というポップアップウィンドウを無効にする

2022-02-13 23:03:18

質問内容

以下のフロントエンドのコードを使って .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();
  });

エクスポートはうまくいき、正しいドキュメントを得ることができました。しかし 変更した内容が保存されていない可能性があります というメッセージが表示されます。このメッセージを表示させないようにするにはどうしたらよいですか?見たくないのですが。

解決方法は?

Dekelが教えてくれました。

メッセージは ビフォアアンロード イベントが発生します。 で無効化できますし 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();
  });