piapia123
es

Generador de código de ventana emergente

Web

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Escribe una URL, ajusta el tamaño, la posición y unos cuantos interruptores, y obtén código para pegar. La mitad del valor está en decirte qué parámetros ya no hacen nada: `menubar`, `toolbar`, `location` y `status` los ignoran los navegadores modernos (ni Chrome ni Firefox dejan que un script oculte la barra de direcciones: eso es diseño antifraude), así que copiar un fragmento con «menubar=no» solo te hace creer que funcionó. La otra mitad son valores seguros: cuando `window.open` abre una página del mismo origen, la ventana nueva puede volver a través de `window.opener` y navegar la página que la abrió, así que el código generado añade `noopener` y limpia `opener`.

Funciones

  • Genera código window.open o un enlace `<a target="_blank">`
  • Tamaño, posición, redimensionado y barras de desplazamiento ajustables, con los valores fuera de rango acotados
  • No emite los parámetros ignorados menubar / toolbar / location / status, y dice por qué
  • Añade noopener por defecto y limpia `window.opener`
  • Trata el compromiso de noopener de forma explícita: con él en la cadena de features, window.open devuelve null
  • Escapa la URL como literal, así que las comillas que contenga no rompen la cadena
  • Rechaza pseudourls javascript: / data: — esas no abren una página
  • Salida de JavaScript o HTML con resaltado de sintaxis

Cómo se usa

  1. Escribe la URL que se va a abrir
  2. Ajusta el tamaño, la posición y los interruptores
  3. Elige la salida: código window.open o etiqueta de enlace
  4. Copia el resultado: está listo para usar

Preguntas frecuentes

¿Por qué no hay opción de «ocultar la barra de direcciones»?
Porque los navegadores modernos no lo permiten. Los parámetros `location`, `menubar`, `toolbar` y `status` se ignoran en Chrome y Firefox: la barra de direcciones tiene que seguir visible, porque si no una página de fraude podría hacerse pasar por una interfaz de confianza sin barra. Es una decisión de seguridad, no pereza del navegador, así que la herramienta no los emite ni te da la ilusión de que podría.
¿Qué hace noopener y por qué viene activado?
Una página del mismo origen abierta con `window.open` puede volver a través de `window.opener` y navegar la página que la abrió: el truco clásico del fraude, en el que se abre una ventanita y la página principal se convierte en un formulario de acceso. `noopener` corta esa referencia, y el código generado además pone `win.opener` a null, cerrando los dos extremos. Salvo que la ventana nueva necesite de verdad controlar a su apertora, no hay motivo para desactivarlo.
Con noopener activado, ¿por qué no aparece `const win = window.open(...)`?
Porque window.open devuelve null cuando la cadena de features contiene `noopener`. En ese caso `if (win) win.opener = null` nunca se ejecuta (inofensivo pero inútil) y `window.open(...).focus()` lanza una excepción al momento. Así que en ese modo el código generado no guarda ninguna referencia, y el comentario dice por qué: para que veas de un vistazo que esta forma no puede controlar la ventana.
¿Por qué no se abre ninguna ventana?
Lo más habitual es el bloqueador de ventanas emergentes: solo se permite un `window.open` lanzado directamente por una acción del usuario (un clic o una tecla). Llamarlo dentro de `setTimeout`, al cargar la página o después de un `await` cuenta como no iniciado por el usuario y se bloquea: la función devuelve con normalidad y no aparece ninguna ventana. Llámalo directamente en el manejador del clic.

Herramientas relacionadas