用原生JavaScript实现jQuery的$.getJSON的解决方法_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
});
上一篇: mysql缓冲和缓存设置详解
下一篇: php怎么嗅探出视频网下的视频上载地址
推荐阅读
-
浅谈原生JS实现jQuery的animate()动画示例
-
用DOM实现文章采集--通过jquery语法式的方法采集指定对象的文本
-
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
-
利用原生JS与jQuery实现数字线性变化的动画
-
浅谈原生JS实现jQuery的animate()动画示例
-
jQuery模拟html下拉多选框的原生实现方法示例
-
jQuery实现动态加载(按需加载)javascript文件的方法分析
-
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
-
用jQuery模拟页面加载进度条的实现代码
-
用jQuery实现的智能隐藏、滑动效果的返回顶部代码