2011-04-06 14 views
12

¿Hay alguna manera de anular alert("") y confirm("") en javascript?Anular alerta y confirmar en Javascript

Uso jQuery, así que si hay una manera de hacerlo en este marco, se lo agradecería.

me gustaría hacer cosas como:

override alert(msg){ 
    //Show custom stuff here 
} 

override confirm(msg){ 
    //Show custom stuff here. 
    return watever; 
} 

Respuesta

27

Sí y no. Simplemente puede reemplazarlos:

window.alert = function(msg){ 
    // stuff 
} 

pero no se va a conseguir la funcionalidad de bloqueo que alerta y confirmar darle, es decir, no habrá manera de conseguir este código para trabajar:

if(confirm('Do Something?')){ 
    // do stuff 
} 

En general, es mejor que haga otras funciones para hacer cosas similares a las que está tratando de reemplazar.

+4

+1 por mencionar que no tendrán la misma acción de bloqueo. – alex

+0

¿Esto significa que la alerta seguirá apareciendo? –

+0

¡Vuelvo a votar esta vez, buen punto sobre el bloqueo! – ctcherry

3

Sólo redefinirlo:

window.alert = function(msg) { console.log(msg); } 
+1

lol, ¿cada persona brillante habla así? Si le pregunto a un amigo algo "oh, haz eso, cosas simples". Gracias por la ayuda :) –

+0

jajaja, no quise que sonara de esa manera :) – ctcherry

+1

lol, un tipo lvl 40k dijo lo mismo. –

1

apenas define una función llamada alert o confirm.

function alert(){}; function confirm(){}; 

Sin embargo, si necesita referencia a las funciones originales, entonces debería guardar referencias a los asignando var oldAlert o simplemente definir alert dentro de otra función, por lo window.alert estancias sin tocar.

(function() { 
    function alert(){}; // alert inside of this scope is your custom function 
})(); 
+0

o puede reemplazar window.alert y hacer referencia a 'window.constructor.prototype.alert': P –

Cuestiones relacionadas