0

当我用 jquery 动态加载脚本时

...
options = {
  dataType: "script",
  cache: true,
  url: "...appContr.js"
}
return jQuery.ajax(options);    
...

我用萤火虫调试脚本,这个脚本的名字是“1”,一切都在一行(或几行)。我不能用它来调试。

我使用 Firefox 10.0.2 和 Firebug 1.9.1。

当我使用 LAB.js

$LAB.script("...appContr.js").wait(function() {
      ...
    });         

或 require.js

该文件有其换行符,脚本的名称是“appContr”。

如何更改 jQuery 命令以获得相同的结果?

非常感谢提前

编辑:

谢谢你,Headshota,你的回答,但这无济于事。
此外,getscript 不会缓存内容,这对我来说很重要。

编辑:

谢谢你,马林,你的回答:

当我使用 lab.js 或 require.js 加载脚本时,整个事情都可以在没有 firebug 增强的情况下工作,问题仅在于 jquery 脚本加载。

在萤火虫中,我有选项卡控制台、html、css、脚本、dom 和网络。如果我在 jquery 脚本加载后去编写脚本并查看脚本,则代码中没有换行符。
但是当我转到“选项卡”控制台时,我有一个获取请求的条目。当我在此获取请求中单击“回答”时,脚本包含换行符。但这对我没有帮助,因为在“脚本”标签中缺少换行符。

4

2 回答 2

2

dataType: script告诉jQuery.ajax()将响应解释为 JavaScript 并对其进行评估。

“脚本”:将响应评估为 JavaScript,并将其作为纯文本返回。

评估的代码基本上没有文件、行号,也可能没有空格。如果您尝试在 FireBug 中对其进行调试,它可能会告诉您它是“eval()ed”代码。

JavaScript 加载器(例如 LABjs)通过<script src>在文档中注入标签来工作;FireBug 更容易调试,因为 JavaScript 文件名、文件内容和行号都可用。

于 2012-04-20T10:48:55.093 回答
1

我不确定如何在 firebug 中正确获取脚本的名称,但至于您的其他困境,您应该考虑几个 Firebug 扩展

Ben Murphy 的 JS Deminifier 1.0.7:这会将您的 javascript 扩展为非常易读的代码(但如果 javascript 已被难以置信地缩小,但听起来不会在您的情况下发生)。只需确保打开显示在萤火虫下方的插件栏,并将 JSD 设置为打开(在左下角)。

在 Firebug 中进行 Javascript 调试的另一个好选择...

BinaryAge 的 FireRainbow 1.5:这为在 firebug 中查看的 javascript 提供了非常有用的语法突出显示。

希望这些工具可以缓解您的问题。

于 2012-04-20T10:31:55.910 回答