JavaScript: anulación de alerta()

Resuelto cllpse asked hace 15 años • 12 respuestas

¿ Alguien tiene alguna experiencia con la anulación de la alert()función en JavaScript?

  • ¿Qué navegadores admiten esto?
  • ¿Qué versiones de navegador admiten esto?
  • ¿Cuáles son los peligros de anular la función?
cllpse avatar Nov 13 '09 21:11 cllpse
Aceptado

Definitivamente es "compatible". Es tu página web, haces con ella lo que quieras.

Ya hice esto para rastrear eventos analíticos sin modificar una biblioteca sino colándome en los eventos.

Utilice el patrón de proxy:

(function(proxied) {
  window.alert = function() {
    // do something here
    return proxied.apply(this, arguments);
  };
})(window.alert);

También puede omitir la llamada a la función original si lo desea (representado)

Más información aquí: Tipos JQuery #Patrón Proxy

Mike Gleason jr Couturier avatar Nov 13 '2009 14:11 Mike Gleason jr Couturier

Aunque la mayoría de los navegadores admiten su anulación, tenga cuidado con lo que hace con él.

Dado que el cuadro de alerta predeterminado bloquea el hilo de ejecución, es posible que algunas bibliotecas que dependen de este comportamiento ya no funcionen (en el mejor de los casos).

Debes ser un buen ciudadano y evitar tocar la API nativa. Si lo hace, podría dividir las cosas al utilizar código de terceros.

Sin embargo, si desea redefinir el comportamiento de la alerta en un contexto específico, puede incluirlo con una función anónima, como esta:

/* new funky alert */
function myFunkyAlert(msg) { 
    /* here goes your funky alert implementation */
    alert("Look ma!\n" + msg);
}

(function(alert) { // anonymous function redefining the "alert"

    /* sample code */
    alert("Hello World!");

})(myFunkyAlert);
Pablo Cabrera avatar Nov 13 '2009 16:11 Pablo Cabrera