html/js как спросить пользователя, где загрузить файл

#javascript #html #download #popup

Вопрос:

Я хотел бы создать html-файл, содержащий кнопку, которая при нажатии на которую запрашивает пользователя, куда загрузить файл, сгенерированный js. Например, вот скриншот моего браузера firefox, на котором мне предлагается решить, где я хочу сохранить файл, который я собираюсь загрузить с веб-страницы.

пример

В настоящее время мое решение состоит в следующем коде:

 <script>
    function download(filename, text){
        let element = document.createElement('a')
        element.setAttribute('href', 'data:text/plain;charset=utf-8,'   encodeURIComponent(text))
        element.setAttribute('download', filename)
        element.click()
    }

    download("hello.txt","This is the content")

</script>
 

Однако всплывающее окно не спрашивает, куда сохранить файл, как показано здесь:

введите описание изображения здесь

Как я могу повторить первую ситуацию с JS и HTML?

Ответ №1:

Это полностью зависит от реализации браузера и не является чем-то, что вы можете контролировать с помощью Javascript.

В этом случае пользователю придется выбрать сохранить файл.

Комментарии:

1. Что происходит в html/js, что вызывает разницу в поведении?

2. На втором изображении у вас нет приглашения сохранить файл, но есть приглашение открыть файл

3. как я могу изменить код так, чтобы вместо него было предложено сохранить файл?