#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"
(без подчеркивания) откроет новую вкладку в первый раз, а затем будет повторно использовать эту вкладку при каждом последующем щелчке.