跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

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

今天在写一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 = "http://xxx.xxx.xxx?callback=jsonp123";var params = {a:1,b:2};$.getJSON(url, params, "callback", function(data){//todo});

相关文章