Нет вариантов. Вы не можете этого сделать, и на то есть веская причина.
Браузеры разрешат window.open()
работать только тогда, когда вызывающий его код обрабатывает событие, такое как «щелчок». В этом случае браузер предполагает, что на странице есть интерактивный элемент и пользователь знает, что будет всплывающее окно. Если страница просто вызывает window.open()
для нового окна из некоторого контекста, такого как прямой код скрипта, или в обработчике события «готово» или «загрузить», или в обратном вызове XMLHttpRequest, то браузер предполагает, что всплывающее окно может быть чем-то неприятным. 1005 *
В некоторых браузерах пользователь может ослабить эти правила, но ваш код не может этого заставить.