首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过jQuery getScript函数添加的调试脚本

通过jQuery getScript函数添加的调试脚本
EN

Stack Overflow用户
提问于 2009-03-27 17:44:57
回答 5查看 28.9K关注 0票数 52

我有一个通过jQuery的$.getScript函数动态添加脚本引用的页面。脚本加载和执行都很好,所以我知道引用是正确的。但是,当我向任何脚本添加" debugger“语句以允许我在调试器(如VS.Net、Firebug等)中单步执行代码时,它不起作用。jQuery加载脚本的方式似乎阻止了调试器找到文件。

有没有人有解决这个问题的办法?

EN

回答 5

Stack Overflow用户

发布于 2011-09-21 09:57:01

在JQuery 1.6(可能是1.5)中,您可以不使用getScript,而使用jQuery.ajax()。然后设置crossDomain:true,你会得到同样的效果。

错误回调将不起作用。所以你最好不要像下面这样设置它。

但是,我设置了一个定时器,并成功清除了它。10秒后,如果我没有听到任何声音,我就认为这个文件是错误的。

代码语言:javascript
复制
        jQuery.ajax({
            crossDomain: true,
            dataType: "script",
            url: url,
            success: function(){
                _success(_slot)
            },
            error: function(){
                _fail(_slot);
            }
        })
票数 21
EN

Stack Overflow用户

发布于 2011-06-20 00:27:38

尝尝这个,

代码语言:javascript
复制
jQuery.extend({
getScript: function(url, callback) {
    var head = document.getElementsByTagName("head")[0];

    var ext = url.replace(/.*\.(\w+)$/, "$1");

    if(ext == 'js'){
        var script = document.createElement("script");
        script.src = url;
        script.type = 'text/javascript';
    } else if(ext == 'css'){
        var script = document.createElement("link");
        script.href = url;
        script.type = 'text/css';
        script.rel = 'stylesheet';
    } else {
        console.log("Неизветсное расширение подгружаемого скрипта");
        return false;
    }



    // Handle Script loading
    {
        var done = false;

        // Attach handlers for all browsers
        script.onload = script.onreadystatechange = function(){
            if ( !done && (!this.readyState ||
            this.readyState == "loaded" || this.readyState == "complete") ) {
                done = true;
                if (callback)
                callback();

                // Handle memory leak in IE
                script.onload = script.onreadystatechange = null;
            }
        };
    }

    head.appendChild(script);

    // We handle everything using the script element injection
    return undefined;

} 
   });
票数 2
EN

Stack Overflow用户

发布于 2015-05-09 03:52:01

有一个简单的方法可以用Chrome来调试它。

1-在您想要调试的行上编写一个console.log("something")。

2-查看控制台以获取该日志。

3-单击日志前面的地址链接。

4-在该行上设置断点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/690781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档