emu in blogjava

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評(píng)論 :: 2 Trackbacks
          <2014年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          公告

          常用鏈接

          留言簿(92)

          隨筆分類(20)

          隨筆檔案(171)

          文章分類(89)

          文章檔案(103)

          相冊(cè)

          收藏夾(46)

          友情連接

          收藏

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜


          其實(shí)我從來(lái)不用jq或者其他框架的,這兩天偶然在一個(gè)小項(xiàng)目里面發(fā)現(xiàn)jq的一個(gè)小bug:getScript函數(shù)沒(méi)有透?jìng)鱟harset信息,如果試圖在頁(yè)面上加載一個(gè)跨編碼的腳本的時(shí)候會(huì)導(dǎo)致編碼錯(cuò)誤。寫(xiě)了一個(gè)補(bǔ)丁函數(shù)覆蓋掉原來(lái)的:

          $.getScript=function(url, callback , charset){
              $.ajax({
                  url: url,
                  dataType: "script",
                  success:callback,
                  scriptCharset:charset
              })
          }    

          這幾年代碼寫(xiě)得很少,輕噴。這里是demo代碼 ,同時(shí)也到j(luò)q的github上提交了一個(gè)issue

          <!DOCTYPE html>
          <HTML>
          <HEAD>
          <meta charset="utf-8" />
          <script src="http://cdn.jsdelivr.net/jquery/1.11.1/jquery.js"></script>

          <SCRIPT LANGUAGE="JavaScript">
          <!--
          function log(s){
              $(
          "body")[0].innerHTML+="<p>"+s.replace(/\n/g,"<br>").replace(/\t/g,"&nbsp&nbsp&nbsp&nbsp")+"</p>";
          }
          function testBIG5(result){
              log(
          "BIG5 decode "+(result?"correctly":"<font color=red>incorrectly</font>"))
          }
          function testGB(result){
              log(
          "gb2312 decode "+(result?"correctly":"<font color=red>incorrectly</font>"))
          }
          function testUTF8(result){
              log(
          "utf-8 decode "+(result?"correctly":"<font color=red>incorrectly</font>"));
          }
          function testJP(result){
              log(
          "iso-2022-jp decode "+(result?"correctly":"<font color=red>incorrectly</font>"));
          }
          function testKR(result){
              log(
          "euc-kr decode "+(result?"correctly":"<font color=red>incorrectly</font>"));
          }
          $(document).ready(
          function(){

              $.when(
                  log(
          "<i>old version of getScript:</i>"),
                  log($.getScript.toString()),
                  $.getScript(
          "http://stonelf.sinaapp.com/testGB.js"),
                  $.getScript(
          "http://stonelf.sinaapp.com/testUTF8.js"),
                  $.getScript(
          "http://stonelf.sinaapp.com/testBIG5.js"),
                  $.getScript(
          "http://stonelf.sinaapp.com/testJP.js"),
                  $.getScript(
          "http://stonelf.sinaapp.com/testKR.js")
              ).then(
          function(){

                  $.getScript
          =function(url, callback , charset){
                      $.ajax({
                          url: url,
                          dataType: 
          "script",
                          success:callback,
                          scriptCharset:charset
                      })
                  }    

                  log(
          "<hr><i>new versioni of getScript:</i>");
                  log($.getScript.toString()),
                  $.getScript(
          "http://stonelf.sinaapp.com/testGB.js",undefined,"gb2312");
                  $.getScript(
          "http://stonelf.sinaapp.com/testUTF8.js",undefined,"utf-8");
                  $.getScript(
          "http://stonelf.sinaapp.com/testBIG5.js",undefined,"big5");
                  $.getScript(
          "http://stonelf.sinaapp.com/testJP.js",undefined,"iso-2022-jp");
                  $.getScript(
          "http://stonelf.sinaapp.com/testKR.js",undefined,"euc-kr");

              })
          })
          //-->
          </SCRIPT>
          </HEAD>
          <BODY>
          </BODY>
          </HTML>
          posted on 2014-11-19 19:40 emu 閱讀(1400) 評(píng)論(1)  編輯  收藏

          評(píng)論

          # re: jq的getScript函數(shù)不支持chaset?override掉! 2014-12-05 14:28 歌詞網(wǎng)站
          學(xué)習(xí)了,支持一下。  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 博白县| 兴化市| 定州市| 恩平市| 博爱县| 鹤岗市| 石棉县| 台安县| 崇左市| 阳高县| 江阴市| 大安市| 封开县| 乐业县| 团风县| 花垣县| 那坡县| 吴旗县| 永昌县| 华亭县| 巴青县| 龙口市| 三都| 彰化县| 达孜县| 龙泉市| 安新县| 保山市| 明光市| 东乡族自治县| 盐池县| 嘉鱼县| 铜川市| 图们市| 仪陇县| 六枝特区| 云和县| 汤阴县| 织金县| 延长县| 黄陵县|