用原生JavaScript实现jQuery的$.getJSON的解决方法
今天在写一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;
}
};
. 代码如下:
var url = "https://xxx.xxx.xxx?callback=jsonp123";
var params = {
a:1,
b:2
};
$.getjson(url, params, "callback", function(data){
//todo
});
推荐阅读
-
Javascript/Jquery——简单定时器的多种实现方法
-
用原生js做个简单的滑动效果的回到顶部_javascript技巧
-
用php实现选择排序的解决方法
-
prototype与jquery下Ajax实现的差别_javascript技巧
-
用JQuery 实现AJAX加载XML并解析的脚本_jquery
-
用php实现选择排序的解决方法_PHP
-
用Javascript正则实现url链接的解析类
-
用css3和jquery实现的渐变的动态进度条
-
多个jquery.datatable共存,checkbox全选异常的快速解决方法_javascript技巧
-
JavaScript实现JQuery的insertAfter功能