tengo este codigo:
<b-btn variant="primary" class="btn-sm" :disabled="updatePending || !row.enabled" @click="changeState(row, row.dt ? 'activate' : 'start')"> Activate </b-btn> ........... methods: { async changeState(channel, newMode) { const { id, type } = channel; const data = await this.getToken(); window.open("https://en.wikipedia.org/", "_blank"); return; }Al hacer clic en el botón, no se abre una nueva pestaña.
El problema está vinculado a await this.getToken() . Si elimino el código, todo funciona bien.
Lo más probable es que funcione sin const data = await this.getToken(); entonces el problema es que el navegador lo está bloqueando, porque no es claramente el resultado de un clic (y al navegador no le gustan las ventanas emergentes inesperadas).
Lo que podría funcionar (al menos funciona en Firefox) es hacer algo como:
async changeState(channel, newMode) { let w = window.open("", "_blank"); const { id, type } = channel; const data = await this.getToken(); w.location.href = "https://en.wikipedia.org/" return; }donde primero abre la nueva ventana, luego cambie la URL de la ventana recién abierta.
Por ejemplo, https://jsfiddle.net/xgoavep2/