Нажатие ссылки для загрузки в 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:

  1. щелкните ссылку с скачать атрибут
  2. после загрузки нажмите ссылку на той же странице с 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, который, похоже, решил проблему, поэтому маркировка решена.