为什么Chrome开发者工具/控制台不会显示动态加载的javascript文件/错误?

时间:2011-11-22 12:14:58

标签: javascript google-chrome console

我正在使用代码中的require函数加载文件,这会在页面正文中添加<script/>标记以及相关属性。

脚本加载得很好并且可以访问它们,但如果我在其中一个中有错误,它从未在控制台中显示,并且我没有在开发人员工具内的Scripts选项卡中显示它们,本质上抢夺我的调试功能。

我做错了什么?

我的需求函数如下:

require: function (moduleId) {
    var filename = this.config.modulesDir + '/' + moduleId + '/module.js';
    var script = $('<script></script>').attr({
        'src': filename,
        'type': 'text/javascript'
    }).appendTo('#Scripts');
}

4 个答案:

答案 0 :(得分:5)

这适用于最新版本的Chrome(15.0.874.121)。我确实设置了一个jsfiddle示例,你可以清楚地看到它的工作原理:

http://jsfiddle.net/Tgax4/

您的问题有两种可能的解决方案:

  1. Chrome在您的工作站上不是最新的。更新它。
  2. 您需要不存在的脚本,这就是它们未列出的原因。确保您拥有正确的位置。
  3. 在第二种情况下,chrome应该在控制台中告诉你脚本不存在,所以我很确定它与旧的chrome版本有关。

答案 1 :(得分:2)

您是否考虑过使用像require.js(http://requirejs.org/)这样的库来处理您的依赖项?

使用它我在动态加载的脚本中调试时从未遇到过问题。

答案 2 :(得分:1)

编辑:没关系,那只是JSFiddle,希望斜线被转义。让它逃脱使它对我有用。所以我不认为错误在你的功能中。也许您向我们提供了更多信息。


你能否尝试更换

$('<script></script>')

$('<script>')

答案 3 :(得分:0)

确保您正在使用devtools内部的框架显示脚本。如果在iframe中加载脚本,则应在chrome inspector中选择此框架作为当前环境以显示此框架中的脚本。在按钮旁边的chrome devtools的左下角是小选择,这使您可以更改当前帧(默认为)。尝试选择其他框架并检查脚本选项卡上的脚本选择器是否显示脚本。

如果你看不到错误,请检查下面提到的是否在底部选择了你选择了适当的日志级别 - 尝试选择“全部”按钮,然后检查你是否会看到任何错误。