从 我最近的问题开始,我已经创建了一些用于动态加载部分视图的 JavaScript 函数。但是我不能调试任何动态加载 JavaScript。因为所有加载的 JavaScript 都将由“ eval”函数计算。
我发现了一种创建新 JavaScript 的方法,即使用下面的脚本将脚本动态创建到当前文档的标题中。所有加载的脚本都将显示在 HTMLDOM 中(您可以使用任何调试器来查找它)。
var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.text = "alert('Test!');";
document.getElementsByTagName('head')[0].appendChild(script);
顺便说一下,大多数调试器(IE8DeveloperToolbar、 Firebug 和 GoogleChrome)不能在任何动态脚本中设置断点。因为必须在加载页之后第一次加载可调试脚本。
当使用动态脚本内容或动态文件时,您有调试的想法吗?
更新1-添加用于测试的源代码
您可以使用下面的 xhtml 文件来尝试调试一些变量值。
<!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>
从答案,我只是测试它在 FireBug。结果应该显示如下图像。
请查看页面加载后添加的“ DynamicLoadingScript”。
但是在 FireBug 的 script 选项卡中没有找到
更新2-在动态加载脚本中创建调试断点
上述两个图像都显示在脚本的某一行中插入“ debug;”语句可以在动态加载脚本中触发断点。但是,两个调试器在断点处都不显示任何代码。因此,这是没有用的
谢谢