2010-08-02 25 views
13

¿Cómo puedo crear una función de alerta personalizada en Javascript?Alerta personalizada usando Javascript

+0

¿Puede ser un poco más descriptivo? –

+1

Quiero cambiar el título predeterminado de 'La página en http // ...' a mi propio título personalizado. ¿Es eso posible? –

Respuesta

28

Puede anular la función existente alert, que existe en el objeto window:

window.alert = function (message) { 
    // Do something with message 
}; 
9

Si usted está buscando un reemplazo JavaScript/HTML/CSS, recomiendo echar un vistazo a jQueryUI y su aplicación de modal dialogs .

10

Técnicamente puede cambiar lo que hace la función de alerta. Sin embargo, no puede cambiar el título u otro comportamiento de la ventana modal iniciada por la función de alerta nativa (además del texto/contenido).

+0

Bien, eso es lo que necesitaba saber. +1. Pero acepté la respuesta de advait porque él me dio una solución alternativa. –

13

Esta es la solución que se me ocurrió. Escribí una función genérica para crear un cuadro de diálogo jQueryUI. Si lo desea, puede anular la función de alerta predeterminada utilizando la sugerencia de Matt: window.alert = alert2;

// Generic self-contained jQueryUI alternative to 
// the browser's default JavaScript alert method. 
// The only prerequisite is to include jQuery & jQueryUI 
// This method automatically creates/destroys the container div 
// params: 
//  message = message to display 
//  title = the title to display on the alert 
//  buttonText = the text to display on the button which closes the alert 
function alert2(message, title, buttonText) { 

    buttonText = (buttonText == undefined) ? "Ok" : buttonText; 
    title = (title == undefined) ? "The page says:" : title; 

    var div = $('<div>'); 
    div.html(message); 
    div.attr('title', title); 
    div.dialog({ 
     autoOpen: true, 
     modal: true, 
     draggable: false, 
     resizable: false, 
     buttons: [{ 
      text: buttonText, 
      click: function() { 
       $(this).dialog("close"); 
       div.remove(); 
      } 
     }] 
    }); 
} 
0

"anular" la forma no es lo suficientemente buena, le sugerimos que cree un cuadro emergente personalizado. El mejor beneficio de esta solución es que puede controlar todos los detalles.

+0

[SweetAlert] (http://t4t5.github.io/sweetalert/) es una buena opción para usted – dabeng

+0

[Simple Popup] (https://github.com/dabeng/Simple-Popup) es otra alternativa ligera para usted . – dabeng

+0

Recomiendo simplemente editar su respuesta para incluir estos enlaces. – mjk

Cuestiones relacionadas