Überschreiben einer globalen Funktion in Javascript
Ich versuche, der JavaScript-Funktion setTimeout meine eigene Fehlerbehandlung hinzuzufügen. Der folgende Code funktioniert in Chrome einwandfrei:
var oldSetTimeout = window.setTimeout;
window.setTimeout = function setTimeout(func, delay) {
var args = Array.prototype.slice.call(arguments, 0);
args[0] = function timeoutFunction() {
var timeoutArgs = Array.prototype.slice.call(arguments, 0);
try {
func.apply(this,timeoutArgs);
}
catch (exception) {
//Do Error Handling
}
}
return oldSetTimeout.apply(this, args);
}
Aber in IE7 verwandelt es sich in eine rekursive Funktion. Aus irgendeinem GrundoldSetTimeout
wird auf die neue Funktion gesetzt.
Irgendwelche Vorschläge