Открыть несколько вкладок с javascript - PullRequest
0 голосов
/ 04 августа 2020

У меня есть процедура javascript, которая получает список идентификаторов, и я хочу открыть вкладку браузера для каждого идентификатора. Вот то, что у меня есть прямо сейчас - и оно открывает первую вкладку, но не любую другую. Может ли кто-нибудь указать мне правильное направление?

function launch() {
        var data = {5, 8, 9};
        if (data.length > 0) {

            let url = "/Controller/Action";
            data.forEach(function (entry) {
                
                let link = document.createElement('a');
                link.href = url + "?VisitID=" + entry;
                link.target = '_blank';
                link.click();
                //setTimeout(() => { console.log("wait"); }, 1000);
            });
        }
        else {
            alert("You must select at least one row before launching");
        }
    }

1 Ответ

1 голос
/ 04 августа 2020

Прежде всего, если вам на самом деле не нужно отображать ссылку и использовать ее только для открытия новой вкладки, вы можете просто использовать вместо этого window.open.

Во-вторых, согласно этот комментарий , то, что вы пытаетесь сделать, можно сделать. Рассмотрим следующий псевдокод:

[1,2,3].forEach(i => {
  window.open("http://example.com/" + i, i)
})

«Уловка» состоит в том, чтобы каждый раз предоставлять как другой URL-адрес, так и новое имя (второй параметр - window.open. В противном случае Chrome (и предположительно другие браузеры) будут открывать только одну вкладку.

Но пожалуйста, , используйте этот подход экономно. Если вы слишком часто открываете слишком много вкладок, это сведет пользователей с ума.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...