Как открыть страницу в новой вкладке без нажатия кнопки в VueJS

#javascript #vue.js

Вопрос:

Я хочу открыть ссылку на страницу в новой вкладке после успешного ответа Axios, я погуглил решение об этом, но браузер продолжает блокировать всплывающее окно. Я попробовал нижеприведенный вариант, но он не работает и не поддерживается во всех браузерах

let newTab = window.open(); newTab.location.href = url;

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

1. вы используете блокировщик рекламы?

2. никаких расширений, которые я установил

Ответ №1:

_blank может помочь вам открыть новое окно. ознакомьтесь с документацией функции window.open на w3school. https://www.w3schools.com/jsref/met_win_open.asp

Но по соображениям безопасности браузеры блокируют такие всплывающие окна. Это поведение по умолчанию и желаемое с точки зрения безопасности пользователя. Вы можете переопределить этот параметр, используя приведенное ниже решение. https://blog.getadblock.com/how-to-disable-pop-up-blockers-in-every-browser-a1cccbae53e7

Ответ №2:

Вы можете указать его в качестве второго параметра со _blank значением:

 let newTab = window.open(url,'_blank');
 

Ответ №3:

@Dhruti если все остальное не удастся, вы все равно можете нажать кнопку, чтобы запустить новую вкладку, просто сделайте кнопку скрытой и запустите действие щелчка с помощью JavaScript. Дайте кнопке идентификатор или ref=»имя» в Vue и класс. Установите его opacity: 0; и поместите где-нибудь на странице, где он останется незамеченным. Вы даже можете установить position: relative; (или абсолютный/фиксированный) и дать ему z-index: 0; или -1, а затем после вашего ответа axios позвоните this.$refs.hiddenButton.click() , убедившись, что вы target="_blank" нажали на кнопку.

*совет,
target="_blank" будет открываться новая вкладка при каждом нажатии на этот элемент.
target="blank" (без подчеркивания) откроет новую вкладку в первый раз, а затем будет повторно использовать эту вкладку при каждом последующем щелчке.