0

我已经重载了 jQuery 的 .load() 函数来满足我的 CrossDomain 要求。

(function ($) { 
    var _load = $.fn.load; 
    $.fn.load = function(url, params, callback) { 
        if (url.match('^http')) { 
            $(this).load("read_page.php?p="+url);
            return this;
        }
        else{
            return _load.apply(this, arguments); 
        }
    }
})(jQuery);

“read_page.php”调用 PHP curl 从跨域获取页面。

调用上述重写函数的代码部分是:

$(trg).load(user_folder+shw+qs, function(){
                        showErr("Updation Successfull", trg);
                        $(".divErr").css("border-color","#4F8A10");
                        $(".divErr").css("background","url(images/img_suc.png) no-repeat 10px 50%, left;");
                        $(".divErr").css("background-color","#DFF2BF");
                    }).html(vLoading);

.html(vLoading)部分运行良好,因为我的代码返回this的值。

function(){...}部分不起作用,因为我的代码没有处理回调的部分

需要帮助来处理我的自定义覆盖函数中的回调

4

1 回答 1

0

试试这个版本:

(function ($) { 
    var _load = $.fn.load; 
    $.fn.load = function(url, params, callback) { 
        if ( url.match('^http') ) {
            var params = params || {},
                callback = callback || function () {};
            _load.call(this, "read_page.php?p="+url, params, callback );
            return this;
        }
        else {
            return _load.apply(this, arguments);
        }
    }
})(jQuery);
于 2012-06-27T08:16:21.297 回答