Safari: в закрепленной вкладке атрибут загрузки с данными не работает - PullRequest
0 голосов
/ 30 октября 2018

В Safari 11/12 у меня есть тег с href = "data:" и атрибутом "download", чтобы сохранить файл при нажатии на ссылку.

<!DOCTYPE html>
<html><body>
<a href="data:text/plain;charset=utf-8,Hello" download="hello.txt">
    Click me
</a>
</body></html>

Это прекрасно работает в Chrome и Firefox, а также на закрепленной вкладке в Safari. При нажатии на ссылку текст «Hello» загружается в новый файл с именем hello.txt. Однако в закрепленной вкладке в Safari атрибут загрузки, похоже, игнорируется, и Safari открывает данные в новой вкладке.

Чтобы увидеть это, вам нужно отправить приведенный выше HTML-код с веб-сервера. Если вы просто сохраните файл и откроете его с URL-адресом «file: //», он будет работать как положено.

Я пытался использовать Blob вместо этого, но поведение было таким же.

Я попытался изменить mimeType на «application / octet-stream», что я и нашел в ответе на аналогичный вопрос. Это делает причиной загрузки данных, но имя файла всегда равно unknown.txt. Это не подходит, так как мне нужно контролировать имя файла и расширение (это не hello.txt!)

Как дополнительное примечание, поведение на самом деле отличается в Safari 11 и 12, но ни один из них не работает должным образом. В 11 данные открываются в новой вкладке. В 12 он открывает новую вкладку, но показывает ошибку при открытии данных.

Для меня это похоже на ошибку в Safari. Кто-нибудь может предложить обходной путь?

Спасибо

1 Ответ

0 голосов
/ 16 мая 2019

Похоже, что это хорошо известная ошибка, а атрибут загрузки еще не поддерживается Safari (webkit).

https://bugs.webkit.org/show_bug.cgi?id=167341

https://caniuse.com/#feat=download

...