Estoy tratando de crear un marcador en el que se puede hacer clic para abrir una nueva 'página en blanco' usando about:blank o similar.

Aquí está el problema. La nueva página en blanco debe tener el código fuente dentro. específicamente, necesita tener javascript dentro de él, que espera a que la nueva página en blanco termine de cargarse / instanciarse (lo que sea relevante), y luego muestra un cuadro de alerta que dice "¡éxito!" o similar.

Hasta ahora, todo lo que he intentado ha provocado que la alerta se muestre en la pestaña actual al mismo tiempo que se crea la nueva página en blanco en una pestaña diferente ... o de lo contrario ha provocado la nueva página en blanco pestaña para instanciar solo después de que el cuadro de alerta se haya mostrado y abordado en la pestaña actual.

Esto es lo que he intentado.

javascript:
window.open('about:blank'); window.alert('success');

javascript:
var a = window.alert('success');
var b = window.open('about:blank', '', '_blank');
b.document.write(a);
0
Musixauce3000 9 dic. 2016 a las 21:41

1 respuesta

La mejor respuesta

Puedes probar esto:

  window.open('data:text/html,<!DOCTYPE html><script>alert("success");</script><body><h1>Hello World!</h1></body>', 'myTab');

Por alguna razón, el código anterior no funciona en Chrome. En este caso, puede utilizar esto:

var page = window.open();
page.document.open();
page.document.write('<html><div>Mert</div></html>');
page.document.close();
1
Mert Metin 9 dic. 2016 a las 22:58
Esta es exactamente la solución que estaba buscando. Desafortunadamente, cuando intenté agregar una etiqueta de secuencia de comandos a la mezcla para que mi cuadro de alerta funcione correctamente, el marcador no hace nada.
 – 
Musixauce3000
9 dic. 2016 a las 22:42
Que pasa ¿Puede darnos más detalles?
 – 
Mert Metin
9 dic. 2016 a las 22:45
Daría más detalles si pudiera, pero por lo que puedo decir, literalmente no pasa nada. Es como si hubiera intentado lo siguiente: javascript:window.aler(3+4);. Como en este ejemplo escribí mal alert, el bookmarklet simplemente no se iniciará . Aquí está mi código real, copiado y pegado: window.open('data:text/html,<!DOCTYPE html><body><h1>Hello World!</h1><script>window.alert('success!');</script></body>', 'myTab');
 – 
Musixauce3000
9 dic. 2016 a las 22:50
1
Quieres mostrar la alerta en la página recién abierta, ¿verdad?
 – 
Mert Metin
9 dic. 2016 a las 22:52
Sí, y mi error, algo pasa. El contenido del marcador se muestra en la barra de direcciones, pero aún así el navegador no carga una nueva pestaña, o incluso carga la página de datos en la pestaña actual.
 – 
Musixauce3000
9 dic. 2016 a las 22:54