JavaScript: anulación de alerta()
¿ 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?
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
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);