Что лучше для скачивания файлов? Почему? - PullRequest
2 голосов
/ 12 февраля 2020

Моя текущая задача для нашего веб-приложения - загрузить файл CSV, когда пользователь нажимает кнопку в пользовательском интерфейсе.

Я смог отформатировать данные в штраф CSV (это просто большая строка) , Но, будучи идиотом JavaScript, я нашел в сети какой-то код, показывающий, как скачать файл. Я нашел несколько методов, но выбрал тот, который выглядел наиболее простым.

Вот как это выглядит:

  var pom = document.createElement( 'a' );
  pom.setAttribute( 'href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(csvFile) );
  pom.setAttribute( 'download', filename );

  if( document.createEvent ) {
    var event = document.createEvent( 'MouseEvents' );
    event.initEvent( 'click', true, true );
    pom.dispatchEvent( event );
  }
  else {
    pom.click();
  }

Проблема в том, что я не знаю, в чем разница между кодом в if и else есть. Да, я вижу, что версия if делает версию щелчка мышью, а другая просто вызывает функцию щелчка, но я не знаю, почему браузер будет использовать один или другой.

И вот в чем дело: я пробовал обе версии в Chrome ... и обе работают . Просто if версия работает. Просто else версия работает. Chrome единственный браузер, который нам необходим для поддержки.

Нужны ли оба? Если нет, какой из них предпочтительнее и почему?

1 Ответ

4 голосов
/ 12 февраля 2020

Он пытается справиться с браузерами, которые не поддерживают createEvent Таблица совместимости MDN и Могу ли я использовать createEvent.

Если вы не не нужно поддерживать эти браузеры, вы можете просто предположить, что он есть, и использовать первый блок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...