Нажатие ссылки для загрузки в Safari вызывает загрузку всех ссылок target= blank при нажатии, есть ли обходной путь?
вопрос: После нажатия на ссылку, которая загружает контент, все другие ссылки, которые имеют target= "_blank" и не загружают attr, загружаются при нажатии вместо открытия на новой вкладке.
браузер: Сафари 11.0.2
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<h3>Instructions</h3>
<ul>
<li>Click <a href='sample.txt' target='_blank'>ME</a> (download NOT present) to see page load in new tab then come back to this page</li>
<li>Click <a href='sample.txt' download='sample.txt'>ME</a> (download PRESENT) to see it downloaded</li>
<li>Click <a href='sample.txt' target='_blank'>ME</a> (download NOT present). Safari forces this link to download</li>
</ul>
</body>
</html>
Код: https://embed.plnkr.co/IscC6LTTmpEbAMLrxyYJ/
Replicate:
- щелкните ссылку с скачать атрибут
- после загрузки нажмите ссылку на той же странице с target= "_blank" и убедитесь, что она вынуждена загружать вместо открытия в новой вкладке.
обновление: Я обновил проблему, надеюсь, чтобы лучше объяснить, что происходит. Я нашел своего рода обходной путь, но если я изменю ссылки на _self вместо _blank, то они будут работать как обычно после загрузки.
2 ответов
что касается вашей проблемы, упомянутой выше, у вас есть несколько вариантов для загрузки файла:
открыть файл в том же окне:
<a href="sample.txt" target="_self">Click to Download</a>
открыть файл в новом окне:
<a href="sample.txt" target="_blank">Click to Download</a>
окно загрузки файла силы:
однако, если вы хотите принудительно загрузить файл, запросив всплывающее окно загрузки( чтобы открыть или сохранить), то все, что вам нужно сделать, это добавить "загрузить" по ссылке, Как видно ниже:
<a href="sample.txt" download>Click to Download</a>
поэтому ваш отредактированный код может выглядеть примерно так:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<h3>Instructions</h3>
<ul>
<li>Click <a href='sample.txt' target='_blank'>ME</a> (download NOT present) to see page load in new tab then come back to this page</li>
<li>Click <a href='sample.txt' download='sample.txt'>ME</a> (download PRESENT) to see it downloaded</li>
<li>Click <a href='sample.txt' download>ME</a> (download NOT present). Safari forces this link to download</li>
</ul>
</body>
</html>
надеюсь, это поможет вам!
не совсем ответ, но после сообщения о проблеме apple и ожидания, теперь у нас есть Safari 11.1.1, который, похоже, решил проблему, поэтому маркировка решена.