tengo tres botones Recorro los botones con foreach y cada botón abrirá un nuevo sitio con diferentes contenidos, que se almacenan en una matriz (filtro a través de la matriz y pongo el valor de las claves de contenido en una variable):
let sites = [{ "id": 1, "content": "Lorem ipsum 1" }, { "id": 2, "content": "Lorem ipsum 2" }, { "id": 3, "content": "Lorem ipsum 3" } ]; let siteLinks = document.querySelectorAll(".site-link"); siteLinks.forEach((el) => { el.addEventListener("click", () => { sites.filter((site) => { if (el.innerText == site.id) { var opened = window.open("", '_blank'); opened.document.write(` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Project site</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <div class="content"> ${site.content} </div> </body> </html>`) } }); }); }); <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Generate sites from JS</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <div class="btn-container"> <button class="site-link">1</button> <button class="site-link">2</button> <button class="site-link">3</button> </div> </body> </html>La pregunta es, ¿cómo podría generar una URL única para cada sitio abierto como "www.site-domain.com/site-1.php", "www.site-domain.com/site-2.php", " www.site-domain.com/site-3.php", etc.? Porque ahora, si se abre un nuevo sitio, puedo ver "acerca de: en blanco" en la ventana del navegador. Gracias de antemano por su ayuda.
let sites = [{ "id": 1, "content": "Lorem ipsum 1", "url": "http://example-1.com" }, { "id": 2, "content": "Lorem ipsum 2", "url": "http://example-2.com" }, { "id": 3, "content": "Lorem ipsum 3", "url": "http://example-3.com" } ];Puede agregar la propiedad url como en el ejemplo anterior con la dirección del sitio web que desee, luego puede agregar esta propiedad a window.open (primer argumento) siguiendo el ejemplo a continuación:
var opened = window.open(site.url, '_blank');