Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.09.2023, 09:01
Аватар для controllerr
Новичок на форуме
Отправить личное сообщение для controllerr Посмотреть профиль Найти все сообщения от controllerr
 
Регистрация: 17.09.2023
Сообщений: 7

Как открыть диалоговое окно Сохранить как
Как динамически выбрать место сохранения файла на локальном компьютере с помощью чистого javascript.

Решение: В настройках браузера в Инструментах в Загруженных файлах выставить переключатель на Всегда спрашивать, куда сохранять файлы.

Вопрос: А если у пользователя этот переключатель стоит Сохранять по-умолчанию в Загрузки, то как временно на стороне пользователя включить этот переключатель.

Последний раз редактировалось controllerr, 17.09.2023 в 10:00.
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2023, 09:52
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,753

Чисто с помощью js никак.
Окно сохранения файла открывается при нажатии на ссылку (<a>) с атрибутом download. (Не уверен, но кажется в настройках браузера еще должно быть указано спрашивать место сохранения, а не сохранять автоматически в какую то папку).
Ну можно конечно на js создать элемент <a> с необходимыми атрибутами, проимитировать клик на нем и окно появится.
Ответить с цитированием
  #3 (permalink)  
Старый 17.09.2023, 10:23
Аватар для controllerr
Новичок на форуме
Отправить личное сообщение для controllerr Посмотреть профиль Найти все сообщения от controllerr
 
Регистрация: 17.09.2023
Сообщений: 7

Пробовал через ссылку: <a href="text.txt" download>text</a>.
Файл text.txt лежит вместе с index.html. После нажатия на ссылку просто открывается содержимое файла на той же странице. Окно сохранить как не появляется.

Код html:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<a href="text.txt" download>text</a>
</body>
</html>

Делал как найте: https://webref.ru/html/a/download
Там по нажатию по ссылке Скачать файл открывается окно Сохранить как. У меня открывается сразу текст файла.
Как правильно написать текст ссылки на файл.

Последний раз редактировалось controllerr, 17.09.2023 в 10:50.
Ответить с цитированием
  #4 (permalink)  
Старый 17.09.2023, 10:37
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,753

При работе с сервером (если страница скачивается с сервера) диалоговое окно открывается.
При работе с локальной файловой системой, действительно файл выводится на страницу

Вот кстати
https://developer.mozilla.org/ru/doc...HTML/Element/a
В примечании к атрибуту download
Цитата:
Этот атрибут соблюдается только на ресурсах с тем же доменом.
При работе с локальной файловой системой понятие домена нет. И браузеры в разных случаях это по разному трактуют. Иногда считают весь локальный компьютер одним доменом, иногда только папку, а иногда считают, что раз нет домена, то они всегда разные.

Последний раз редактировалось voraa, 17.09.2023 в 10:48.
Ответить с цитированием
  #5 (permalink)  
Старый 17.09.2023, 11:29
Аватар для controllerr
Новичок на форуме
Отправить личное сообщение для controllerr Посмотреть профиль Найти все сообщения от controllerr
 
Регистрация: 17.09.2023
Сообщений: 7

С помощь программы Denwer и создания сайта действительно открывается окно Сохранить как. А нужно без сервера, чтобы только средствами обычной страницы html локального компьютера открывалось это окно в офлайне на стороне пользователя.

Последний раз редактировалось controllerr, 17.09.2023 в 11:33.
Ответить с цитированием
  #6 (permalink)  
Старый 17.09.2023, 11:32
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,753

Создатели браузеров не подумали, что вам это будет нужно. Они свои браузеры делают, в первую очередь, для работы по сети.
Ответить с цитированием
  #7 (permalink)  
Старый 17.09.2023, 11:42
Аватар для controllerr
Новичок на форуме
Отправить личное сообщение для controllerr Посмотреть профиль Найти все сообщения от controllerr
 
Регистрация: 17.09.2023
Сообщений: 7

Может есть какая-нибудь библиотека javascipt?
Ответить с цитированием
  #8 (permalink)  
Старый 17.09.2023, 11:51
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Забудь о локальных html. Из создателей браузеров никто не заботится об их работоспособности, но зато постоянно накидывают всё новые и новые ограничения, причём произвольно и разрознено. Даже если ты заставишь что-то работать сейчас - совершенно не факт что уже завтра всё снова не сломается.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 17.09.2023, 11:54
Аватар для controllerr
Новичок на форуме
Отправить личное сообщение для controllerr Посмотреть профиль Найти все сообщения от controllerr
 
Регистрация: 17.09.2023
Сообщений: 7

Другими словами, нельзя сделать без сервера!!!

На самом деле можно.
Есть файл html по ссылке: https://disk.yandex.ru/d/6qZUCpUlnpl5NA
Если нажать на этой странице на кнопку Экспорт -> Сохранить, то в офлайне (без интернета, без сервера) откроется окно Сохранить как.

Вопрос: Как это реализовано?

Последний раз редактировалось controllerr, 17.09.2023 в 12:07.
Ответить с цитированием
  #10 (permalink)  
Старый 17.09.2023, 12:33
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,753

Сообщение от controllerr
Вопрос: Как это реализовано?
Это просто реализовано в браузере. На любую ссылку можно ткнуть правой кнопкой мыши и выбрать в меню пункт Сохранить как.
Но js тут совершенно не при чем. Просто обычным кликом файл не сохранить.
Впрочем, если этот файл не скачивается откуда то, а создан как блоб непосредственно скриптом, и его url указан через URL.createObjectURL, то вполне возможно он сохранится. Такие url вроде по умолчанию имеют тот же домен, что и страница, которая их создала.
Надо пробовать, что будет при использовании локальных страниц.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как открыть окно в браузере со сгенерированным через JavaScript HTML-кодом? xintrea Events/DOM/Window 1 13.07.2013 02:03
Как передать переменную в модальное окно sinsir jQuery 24 20.06.2013 16:59
Посоветуйте как сделать модальное окно battrack jQuery 3 12.07.2012 15:42
Реализация удаления элемента через диалоговое окно Harvey jQuery 9 04.06.2012 11:34
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09