【问题标题】:Firebug not listing all javascript modulesFirebug 未列出所有 javascript 模块
【发布时间】:2015-03-05 15:33:33
【问题描述】:

我在让 Firebug(和 Chrome)列出我定义和包含的 javascript 文件/模块时遇到问题。我最近从 Dojo 1.5 切换到了 Dojo 1.9.1 AMD,并按照设计通过 require 协议包含了 javascript 模块。这一直运行良好,直到最近我将 Dojo 配置的“async:true”更改为“async:false”以支持一些仍然需要“dojo.require”被识别和支持的遗留代码。将 Dojo 配置更改为“async:false”允许“dojo.require”调用工作,但不知何故破坏了 Firebug 和 Chrome“查看”加载的 javascript 模块的能力。我只是暂时将配置切换回“async:true”以验证 Firebug 是否成功列出了 javascript 模块,所以这绝对是导致效果的原因。

JSP 页面的功能似乎仍按预期运行 - 因此 JavaScript 模块根据需要包含在内,但是当我尝试从 Firebug 查看它们并在其中设置断点时 - 它们没有列出。如果我搜索出现在其中一个中的特定字符串,那么 Firebug 将成功找到 javascript 代码,但显示它“位于”以下标题下:

/dojo/1.9.1/dojo/dojo.js.uncompressed.js 328行>函数1行>eval(2)

而不是实际的文件/模块名称。我无法从这个视图设置断点,但如果我添加一个“调试器;”插入 javascript 文件,然后 Firebug 将在执行期间停止在该位置 - 这不是理想的解决方法。

知道为什么在 Firebug 中从“async:true”切换到“async:false”会导致这种行为吗?

谢谢。任何帮助表示赞赏。

【问题讨论】:

  • 我后来发现了一个类似的问题:stackoverflow.com/questions/2627844/… 但它添加 Dojo 配置属性“debugAtAllCosts:true”的解决方案对我没有任何影响。
  • debugAtAllCosts 在 1.6 之后不再存在。将asynctrue 切换到false 将加载程序从脚本注入切换到同步XHR + eval,我猜开发工具在处理这个问题时遇到了问题。它适用于1.5吗? (那通常也会使用同步 XHR + eval。)
  • 感谢您的回复。当我使用 1.5 时,我没有任何 JavaScript 模块,所以这对我来说是一个新的领域。

标签: javascript dojo firebug amd


【解决方案1】:

你必须像这样将 has:{'dojo-firebug': true } 添加到你的 dojoConfig 中:

<script type="text/javascript">
    var dojoConfig = {
        has: {
            'dojo-firebug': true
        }
    };
</script>

你也可以这样添加:

<script type="text/javascript"
        src="your_dojo_src_path_here"
        data-dojo-config="has:{'dojo-firebug':true}">
</script>

【讨论】:

  • 感谢您的回复。我试过你的建议,但没有任何影响。我搜索了那个 dojo-firebug 属性,发现它似乎只对为旧版本的 Internet Explorer 生成 Firebug lite UI 有用;如果 Firebug 已经可用(就像在我的 Firefox 中一样),则该属性无效。在这里解释得更好:dojotoolkit.org/documentation/tutorials/1.8/dojo_config
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多