Моя текущая задача для нашего веб-приложения - загрузить файл 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 единственный браузер, который нам необходим для поддержки.
Нужны ли оба? Если нет, какой из них предпочтительнее и почему?