2008-09-04 39 views
70

¿Es posible modificar el título del cuadro de mensaje que abre la función de confirmación() en JavaScript?¿Cambiar el título predeterminado de confirm() en JavaScript?

Podría crear un cuadro emergente modal, pero me gustaría hacerlo de la manera más minimalista posible. me gustaría hacer algo como esto:

confirm("This is the content of the message box", "Modified title"); 

El título predeterminado en Internet Explorer es "Windows Internet Explorer" y en Firefox es "[JavaScript-programa]." No muy informativo. Aunque puedo entender desde el punto de vista de seguridad del navegador que no debería poder hacer esto.

Respuesta

75

Esto no es posible, como dices, desde un punto de seguridad. La única forma de simularlo es crear una ventana de diálogo no modal.

Existen muchos complementos de JavaScript de terceros que puede usar para simular este efecto, por lo que no tiene que escribir todo ese código.

+3

Bootstrap.CSS tiene algunos modales agradables – 0xcaff

0

No puede desafortunadamente. La única forma es simular esto con una llamada window.open.

4

No es posible. Sin embargo, puede utilizar una biblioteca de JavaScript de terceros que emule una ventana emergente, y probablemente se verá mejor también y será menos intrusiva.

0

No use el diálogo de confirmación(), entonces ... fácil de usar un diálogo personalizado de prototype/scriptaculous, YUI, jQuery ... hay mucho por ahí.

0

Sé que esto no es posible para alert(), así que supongo que tampoco es posible confirmarlo. La razón es la seguridad: no está permitido que la cambie para que no se presente como un proceso del sistema o algo así.

0

Sí, esto es imposible de modificar el título de la misma. Si aún desea tener su propio título, puede intentar usar otras ventanas emergentes en su lugar.

3

Siempre puede usar un div oculto y usar javascript para "abrir" el div y tener botones que son como yes y no. Cosas bastante fáciles de hacer.

4

¡SI PUEDES hacerlo! Es un poco complicado;) (casi funciona en ios)

var iframe = document.createElement("IFRAME"); 
iframe.setAttribute("src", 'data:text/plain,'); 
document.documentElement.appendChild(iframe); 
if(window.frames[0].window.confirm("Are you sure?")){ 
    // what to do if answer "YES" 
}else{ 
    // what to do if answer "NO" 
} 

¡Divertalo!

+1

Inicialmente esto creó un error. Luego, después de colocar el bloque 'if' en un tiempo de espera, produjo el mismo resultado en Firefox. No funciona en Chrome http://jsfiddle.net/pzd9pmeu/ –

+0

esto cambia el título a "Una página incrustada en esta página web dice:" – ZioCain

Cuestiones relacionadas