用原生JavaScript實現jQuery的$.getJSON

來源:互聯網
上載者:User

  今天在寫一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});

  歡迎評論拍磚:)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.