Wie erkennt man, woher JavaScript-Alarm kommt?

8

Ich versuche, eine sehr komplexe IE-Intranet-Anwendung zu debuggen. Ich erhalte eine Warnung mit einer benutzerdefinierten Nachricht, die besagt, dass eine Ausnahme aufgetreten ist. Ich würde gerne mehr Informationen über diese Ausnahme erfahren, da die Nachricht nicht sehr hilfreich ist.

Es gibt eine Masterseite, die eine Menge von iFrames (und .htc-Dateien, wenn das einen Unterschied macht) enthält, also glaube ich nicht, dass ich es versuchen kann und hijack window.alert . Mein letzter Ausweg wird sein, mein Glück mit einer Dateisuche zu versuchen.

Kann ich mit IE 8 trotzdem feststellen, woher diese Warnung kommt? Die ideale Lösung wäre, irgendwie eine "breakOnAlert" -Funktion zu erstellen, die eine Debbuer-Anweisung an der richtigen Alarmstelle einfügt.

Zur Klarstellung: Die Masterseite enthält viele Iframes, und ich glaube, dass der Fehler + Alarm von einer dieser Seiten kommt. Jeder Iframe ist eine aspx-Seite (manchmal mit dynamischem html / javascript vom Benutzer) und enthält Inline- und externes JavaScript. Vor dem Posten habe ich versucht, alert auf meiner Seite zu überschreiben (eine Kindseite in einem iframe), aber es hat nicht funktioniert. Ich gehe davon aus, dass nicht funktioniert, da jeder iframe ein eigenes window-Objekt hat, so dass jeder seine eigene Version von alert hat. Damit dies funktioniert, müsste ich alle Iframes finden und für jeden einzeln überschreiben, was meiner Ansicht nach sehr kompliziert wäre. In den IE-Entwicklertools kann ich eine große Menge an Skriptdateien (inline und extern) sehen, so dass es sehr schwierig wäre, manuell nach den darin enthaltenen Warnungen zu suchen.

    
row1 09.04.2012, 08:43
quelle

2 Antworten

5

Da es in allen Iframes eine echte Herausforderung ist, würde ich wahrscheinlich Fiddler verwenden und alert( programmatisch durch etwas ersetzen wie:

%Vor%

IE sollte die debugger -Anweisung unterstützen, damit Sie einen Call-Stack haben

Auf dieser Seite wird erklärt, wie Sie in Fiddler einen Text ersetzen.

Beispiel für eine benutzerdefinierte Fiddler-Regel, die zu OnBeforeResponse hinzugefügt werden soll:

%Vor%     
Madd0g 10.04.2012, 02:30
quelle
1

Ovveride Alarm-Funktion und setzen Sie einen Haltepunkt innerhalb, dann können Sie verfolgen verfolgen verfolgen:)

%Vor%     
Michal Franc 09.04.2012 08:53
quelle

Tags und Links