Aus meiner letzten Frage habe ich bereits eine JavaScript-Funktion zum dynamischen Laden einer Teilansicht erstellt. Daher kann ich kein dynamisches Laden von JavaScript debuggen. Weil das gesamte geladene JavaScript von der Funktion "eval" ausgewertet wird.
Ich habe jedoch eine Möglichkeit gefunden, neues JavaScript mithilfe des folgenden Skripts zu erstellen, um ein Skript dynamisch in den Header des aktuellen Dokuments zu erstellen. Alle geladenen Skripte werden im HTML-DOM angezeigt (Sie können jeden Debugger verwenden, um sie zu finden).
var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.text = "alert('Test!');";
document.getElementsByTagName('head')[0].appendChild(script);
Übrigens können die meisten Debugger (IE8 Developer Toolbar, Firebug und Google Chrome) in keinem dynamischen Skript einen Haltepunkt setzen. Weil das debuggbare Skript beim ersten Laden nach dem Laden der Seite geladen werden muss.
Haben Sie eine Idee zum Debuggen in dynamischen Skriptinhalten oder -dateien?
Update 1 - Quellcode zum Testen hinzufügen
Sie können die folgende xhtml-Datei verwenden, um zu versuchen, einen variablen Wert zu debuggen.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dynamic Loading Script Testing</title>
<script type="text/javascript">
function page_load()
{
var script = document.createElement('script')
script.setAttribute("id", "dynamicLoadingScript");
script.setAttribute("type","text/javascript");
script.text = "var someVariable = 0;\n" +
"someVariable = window.outerWidth;\n" +
"alert(someVariable);";
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
</head>
<body onload="page_load();">
</body>
</html>
Nach der Antwort teste ich es einfach in FireBug. Das Ergebnis sollte wie unten abgebildet angezeigt werden.
Bitte schauen Sie sich das Skript "dynamicLoadingScript" an, das nach dem Laden der Seite hinzugefügt wird.
Es wird jedoch nicht in der Skriptregisterkarte von FireBug gefunden
Update 2 - Debug-Haltepunkt im dynamischen Ladeskript erstellen
Beide obigen Bilder zeigen das Einfügen von "Debugger". Die Anweisung in einer Skriptzeile kann einen Haltepunkt im dynamischen Ladeskript auslösen. Beide Debugger zeigen jedoch keinen Code am Haltepunkt an. Daher ist es dafür nutzlos.
Vielen Dank,








