De mi pregunta reciente , ya creé alguna función de JavaScript para la vista parcial de carga dinámica. Entonces, no puedo depurar ningún JavaScript de carga dinámica. Porque todo el JavaScript cargado será evaluado por la función "eval".
Sin embargo, encontré alguna forma de crear un nuevo JavaScript utilizando el siguiente script para crear dinámicamente un script en el encabezado del documento actual. Todos los scripts cargados se mostrarán en HTML DOM (que puede usar cualquier depurador para encontrarlos).
var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.text = "alert('Test!');";
document.getElementsByTagName('head')[0].appendChild(script);
Por cierto, la mayoría de los depuradores (IE8 Developer Toolbar, Firebug y Google Chrome) no pueden establecer puntos de interrupción en ningún script dinámico. Porque la secuencia de comandos depurable debe cargarse la primera vez que se carga la página.
¿Tiene alguna idea para depurar contenido o archivo de script dinámico?
Actualización 1: agregar código fuente para probar
Puede utilizar el siguiente archivo xhtml para intentar depurar algún valor de variable.
<!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>
Desde la respuesta, solo lo pruebo en FireBug. El resultado debe mostrarse como las siguientes imágenes.
Mire el script "dynamicLoadingScript" que se agrega después de cargar la página.
Pero no se encuentra en la pestaña de script de FireBug
Actualización 2: crear un punto de interrupción de depuración en un script de carga dinámico
Las dos imágenes anteriores muestran la inserción de "depurador"; La declaración en alguna línea de secuencia de comandos puede disparar un punto de interrupción en la secuencia de comandos de carga dinámica. Sin embargo, ambos depuradores no muestran ningún código en el punto de interrupción. Por tanto, es inútil hacer esto.
Gracias,