当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 用原生JavaScript实现jQuery的$.getJSON的解决方法

用原生JavaScript实现jQuery的$.getJSON的解决方法

2019年01月17日  | 移动技术网IT编程  | 我要评论

今天在写一demo,其中用到了jquery的$.getjson方法,写完后发现整个demo中用到jquery中的就这一个地方,但要引入一个jquery实在不划算,于是就自己实现了一个简单版的,基本可以满足需求,现分享出来:

. 代码如下:


var $ = {
getjson: function(url, params, callbackfuncname, callback){
var paramsurl ="",
jsonp = this.getquerystring(url)[callbackfuncname];
for(var key in params){
paramsurl+="&"+key+"="+encodeuricomponent(params[key]);
}
url+=paramsurl;
window[jsonp] = function(data) {
window[jsonp] = undefined;
try {
delete window[jsonp];
} catch(e) {}

 

if (head) {
head.removechild(script);
}
callback(data);
};

var head = document.getelementsbytagname('head')[0];
var script = document.createelement('script');
script.charset = "utf-8";
script.src = url;
head.appendchild(script);
return true;
},
getquerystring: function(url) {
var result = {}, querystring = (url && url.indexof("?")!=-1 && url.split("?")[1]) || location.search.substring(1),
re = /([^&=]+)=([^&]*)/g, m;
while (m = re.exec(querystring)) {
result[decodeuricomponent(m[1])] = decodeuricomponent(m[2]);
}
return result;
}
};

  调用demo如下:

. 代码如下:


var url = "https://xxx.xxx.xxx?callback=jsonp123";
var params = {
a:1,
b:2
};
$.getjson(url, params, "callback", function(data){
//todo
});

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网