用原生JavaScript实现jQuery的$.getJSON的解决方法
2013-05-03 00:00
806 查看
今天在写一DEMO,其中用到了jQuery的$.getJSON方法,写完后发现整个DEMO中用到jQuery中的就这一个地方,但要引入一个jQuery实在不划算,于是就自己实现了一个简单版的,基本可以满足需求,现分享出来:
调用DEMO如下:
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 });
相关文章推荐
- 用原生JavaScript实现jQuery的$.getJSON的解决方法
- jquery、javascript实现(get、post两种方式)跨域解决方法
- 原生js实现jquery的getJSON方法
- jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
- jquery的ajax和getJson跨域获取json数据的实现方法
- jquery中getJSON方法实现跨域
- 解决原生js或jQuery 实现父窗口的问题,如window.parent.document.getElementById()
- Jquery:getJSON方法解决跨站ajax (json的解剖和运用) --附图片加载时的loading显示...
- 勤于思考:jquery.getJSON的缓存问题的解决方法
- JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
- 使用Jquery中getJSON和getScript方法实现跨域(转载)
- 使用jQuery的getJSON方法实现配置信息的状态的异步修改
- jquery之getJSON方法获取中文数据乱码解决方法
- 使用Jquery中getJSON和getScript方法实现跨域
- 使用Jquery中getJSON方法实现跨域
- 记解决jQuery $.getJSON() 传递参数中文乱码问题的方法
- 详解原生JavaScript实现jQuery中AJAX处理的方法
- jquery的ajax和getJson跨域获取json数据的实现方法
- JavaScript Tag标签切换实现的几种方法 原生js + jquery
- JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例