首页 新闻 搜索 专区 学院

用JavaScript实现jQuery的$.getJSON和$load()的方法

0
悬赏园豆:50 [已解决问题] 解决于 2015-01-13 16:05

用JavaScript实现jQuery的$.getJSON和$load()的方法

sunxd的主页 sunxd | 初学一级 | 园豆:4
提问于:2014-12-30 15:35
< >
分享
最佳答案
0

最简单的方法 动态加载 js

var s = document.createElement('script'); 
      s.src = "http://xxxx.com/api.php?callback=callback"; 
      document.body.append(s);

完整方法:

$ = {
    getjs on:function(url,data,callback){
        var call = this.urlquerystring(url)["callback"];
        for(var key in data){
            url += "&"+key+"="+data[key];
        }
        //window[call] = callback;
        window[call] = function(data){
            window[call] = undefined;
            try{
                delete window[call];
            }catch(e){}
            callback(data);
        }
        var script = document.createelement("script");
        script.type = "text/javascript";
        script.src = url;
        document.getelementsbytagname("body")[0].appendchild(script);
        script.onload = function(){
            document.getelementsbytagname("body")[0].removechild(this);
        }
    },
    urlquerystring:function(url){//api.php?callback=callback&foo=foo
        var url = url.split("?")[1];
        var result = {},reg = /([^&=]+)=([^&]*)/g,m;
        while(m = reg.exec(url)){
            result[m[1]] = m[2];
        }
        return result;//object {callback: "callback", foo: "foo"} 
    }
};
$.getjs on("api.php?callback=callback&foo=foo",{"aa":11,"bb":22},function(data){
    console.log(data);
});
收获园豆:50
highsea | 菜鸟二级 |园豆:300 | 2014-12-30 17:44
其他回答(2)
0

...jQuery源码里全有,打开源码,找到方法名一搜索就有了......................................

幻天芒 | 园豆:36608 (高人七级) | 2014-12-30 15:55
0

load ajax js网上百度一下很多

树形图 | 园豆:17 (初学一级) | 2015-01-05 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册