相关疑难解决方法(0)

可以通过WebKit,FireBug或IE8 Developer Tool等调试器来调试动态加载JavaScript吗?

我最近的问题,我已经创建了一些用于动态加载局部视图的JavaScript函数.所以,我无法调试任何动态加载JavaScript.因为所有加载的JavaScript都将通过"eval"函数进行评估.

但是,我找到了一些方法来创建新的JavaScript,使用以下脚本动态创建脚本到当前文档的标题.所有加载的脚本都将显示在HTML DOM中(您可以使用任何调试器来查找它).

var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.text = "alert('Test!');";

document.getElementsByTagName('head')[0].appendChild(script);
Run Code Online (Sandbox Code Playgroud)

顺便说一下,大多数调试器(IE8 Developer Toolbar,Firebug和Google Chrome)都无法在任何动态脚本中设置断点.因为必须在加载页面后第一次加载可调试脚本.

您是否有动态脚本内容或文件调试的想法?

更新1 - 添加测试源代码

您可以使用以下xhtml文件来尝试调试someVariable值.

<!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>
Run Code Online (Sandbox Code Playgroud)

从答案来看,我只是在FireBug中测试它.结果应显示如下图像.

alt text http://d7cgnq.bay.livefilestore.com/y1pJGV27qEARXzZhsMMhPD5z0OxAtnkQK8eKeEXMAxuHjsuWeAq1aGl7sTISRNqVv3lw8ghyxE_GorlwSJDvTql0m0ugSGXPaY-/undebugable-firebug-html.PNG

请查看页面加载后添加的"dynamicLoadingScript"脚本.

alt text http://d7cgnq.bay.livefilestore.com/y1pz_RwqjgeVqe2mAlUZha0PalpPdP0X5AiwJcQhYahERlnbPDdZpb-_d1e96Q-14raSDMJOBsdcV9jsi4B5yCUDqm41Wc3h0yk/undebugable-firebug-script.PNG

但是在FireBug的脚本选项卡中找不到它

更新2 …

javascript ajax

88
推荐指数
6
解决办法
5万
查看次数

开发工具“网络”选项卡,在“源”选项卡中打开脚本吗?

在 Chrome 开发工具中,查看“网络”选项卡时,是否可以选择一个脚本并在“源”选项卡中打开它?双击该脚本将在新的浏览器选项卡中将其打开。

由于“源”选项卡按源域(以及文件夹路径)组织所有资源,因此如果您不立即知道特定脚本的来源,则查找该脚本可能会非常耗时。您必须在网络和源之间来回切换,记下脚本标头中的域和文件夹路径,然后尝试挖掘所有源域和子文件夹,直到找到脚本。

似乎应该有一些明显的方法可以从“网络”选项卡中的“源”选项卡中打开脚本,但我不知道如何打开。您似乎必须手动挖掘才能找到它。

google-chrome google-chrome-devtools

3
推荐指数
1
解决办法
1392
查看次数