¿Es posible depurar el JavaScript de carga dinámica por algún depurador como WebKit, FireBug o IE8 Developer Tool?
Desdemi pregunta reciente, Ya he creado alguna función de JavaScript para la vista parcial de carga dinámica. Por lo tanto, 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 el script en el encabezado del documento actual. Todos los scripts cargados se mostrarán en HTML DOM (que puede usar cualquier depurador para encontrarlo).
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 un punto de interrupción en ningún script dinámico. Debido a que el script debuggable se debe cargar la primera vez que se carga la página.
¿Tiene alguna idea para depurar en el contenido o archivo de script dinámico?
Actualización 1 - Añadir código fuente para la prueba
Puede usar el siguiente archivo xhtml para intentar depurar el valor de algunas variables.
<!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>
De la respuesta, acabo de probarlo en FireBug. El resultado debe mostrarse como las imágenes de abajo.
Mire la secuencia de comandos "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 punto de interrupción de depuración en el script de carga dinámica
Las dos imágenes anteriores muestran la inserción de "depurador"; La declaración en alguna línea de script puede disparar un punto de interrupción en el script de carga dinámica. Sin embargo, ambos depuradores no muestran ningún código en el punto de interrupción. Por lo tanto, es inútil hacer esto.
Gracias,