Избегайте всплывающих окон браузера

#javascript

#javascript

Вопрос:

Я должен загрузить весь файл одной кнопкой. Html — это:

   <div class="col-lg-6 offset-3">
                    <ul class="list-group">
                        @foreach ($lead['media'] as $index => $media)
                            <li class="list-group-item">
                                <a target="_blank" href="{{$media['public_url']}}">
                                    File #{{$index 1}}
                                </a>
                                <a target="_blank" href="{{$media['public_url']}}" class="btn-download">
                                    <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-arrow-down-square"
                                         fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                                        <path fill-rule="evenodd"
                                              d="M14 1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"/>
                                        <path fill-rule="evenodd"
                                              d="M8 4a.5.5 0 0 1 .5.5v5.793l2.146-2.147a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 1 1 .708-.708L7.5 10.293V4.5A.5.5 0 0 1 8 4z"/>
                                    </svg>
                                </a>
                            </li>
                        @endforeach
                    </ul>
                    <a href="#" class="btn btn-primary btn-sm mt-2" id="download-all">
                        Download All
                    </a>
                </div>
  

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

У вас может быть много файлов, но когда я нажимаю загрузить все, в первый раз появляется всплывающее окно. Код :

  <script>
            let btnDownloadAll = document.getElementById('download-all');
            btnDownloadAll.onclick = function () {
                let medias = document.getElementsByClassName("btn-download");

                Object.keys(medias).forEach(key => {
                    window.open(medias[key].href,'_blank')
                });
            }
        </script>
  

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

1. Ваш код включает вызов window.open() , который явно запрашивает новое окно.

2. Как я могу это изменить? @Pointy

Ответ №1:

Возможно, изменение '_blank' может помочь. '_blank' используется для открытия нового окна.