【问题标题】:Firebug doesn't hit breakpoint in a function within a namespaceFirebug 不会在命名空间内的函数中命中断点
【发布时间】:2012-11-21 21:34:13
【问题描述】:

我正在用一个主脚本(使用 jQuery)重新组织我所有引入命名空间的 js:

var myapp : {
    user :   { ...  },  
    ...
    init : function() { ...}
}

我为某些页面加载了一个额外的 js,例如“home.js”,带有:

(function(){
    $j.extend(true, myapp, { 
        _home : {
            init: function() { ...},        
            myfunc : function(prm){
                ...
            }
        }
    });
    myapp._home.init();
})();

现在,如果我在 myfunc 函数中设置一个断点,并调用 myapp._home.myfunc();在控制台中,Firebug 没有命中。

正常吗?我怎样才能在那里有一个断点?

编辑:我将 _home 脚本包装成一个函数。

【问题讨论】:

    标签: jquery asynchronous namespaces firebug breakpoints


    【解决方案1】:

    搜索异步调用和firebug问题,找到了这个帖子

    firebug (1.10.1) suggests javascript is not confined to a single thread in firefox (13.0)

    提供了一些细节。

    结论:我将以“传统”方式包含我的文件以进行调试;)

    【讨论】:

      【解决方案2】:

      尝试使用“调试器”关键字

      function test(variable) {
        for(var i=0; i<10; i++) {
          if(i == 5)
            debugger;
        }
      }
      

      【讨论】:

      • 但是 myfunc 被调用(我在 myfunc 中添加了return "test"; 。我得到了 myfunc 的“测试”)。
      • 我们同意您在 firebug 中激活了脚本面板,对吧?
      • 我正在异步加载附加脚本。这可能是 Firebug 的问题吗? (知道可以在脚本面板中看到脚本_home.js。
      • 确实是由于异步加载...如果我加载“正常”(使用 )我可以看到它并且 我可以打断点。使用我的脚本异步加载(自制),我可以在面板中看到脚本但我无法打断点。
      • 很高兴你明白了 :-)
      猜你喜欢
      • 2010-10-13
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-19
      • 2018-08-14
      • 2020-02-19
      • 1970-01-01
      相关资源
      最近更新 更多