Estoy creando un árbol de enlaces personalizado y estoy luchando por encontrar el comando correcto para abrir estos enlaces en una nueva pestaña. Actualmente, los enlaces se abren en la ventana actual, así como en una nueva pestaña.
let url = document.createElement('url'); switch(event.target.innerText) { case 'youtube' : url = 'https://www.youtube.com/';break; case 'spotify' : url = 'https://open.spotify.com/artist/';break; case 'applemusic' : url = 'https://music.apple.com/';break; case 'soundcloud' : url = 'https://soundcloud.com/';break; case 'amazon' : url = 'https://media.giphy.com/';break; default: break; } if(url) {window.open(top.location.href = url, '_blank');}Cuando reemplazo top con window para la última línea, así:
if(url) {window.open(top.location.href = url, '_blank');}abre la URL en un cuadro extraño dentro de mi ventana actual.
En un tono lateral, esta es mi primera publicación, así que avíseme en caso de que haya hecho algo mal.
Su código está cambiando la URL de la página actual, o el ancestro superior si su página está dentro de un <frame> o <iframe> , para apuntar a la URL especificada, y luego también abre una nueva pestaña/ventana para la URL especificada.
Solo usa:
if (url) { window.open(url, '_blank'); }