亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jquery插件qrcode在線生成二維碼

2019-11-20 12:36:26
字體:
來源:轉載
供稿:網友

隨著移動互聯網的發展,二維碼現在應用得越來越廣泛了,隨手掃掃就可以瀏覽網站、加個好友什么的,比起手工輸入真的是方便太多了。

前期做了一個綜合測評系統,考慮逐步實現移動化,一長串的IP地址用戶輸入也不方便,借助二維碼的話,用戶拿起手機掃掃就可以直接進入系統。

基于這個應用場景,就上網研究下了網站二維碼的實現方式,歸納起來有以下兩種:

1、借助一些二維碼生成網站或者二維碼生成器生成二維碼圖片,然后掛在網站上,如碼云 QR-Code (二維碼) 在線生成器

優點:開發成本為零,能夠快速實現多樣化的二維碼;

缺點:變更二維碼的維護略顯麻煩

2、在后端利用java或.net代碼生成二維碼圖片,再在網站上引用圖片,如qrcode、zxing等

優點:可定制性強,可快速批量生成

缺點:重量級實現方式,對于簡單應用來講開發成本較高

3、在前端頁面通過javascript等方式即時生成為二維碼(ˇ?ˇ) ,如jquery-qrcode

優點:輕量級實現方式,減少圖片IO,節省流量

缺點:不適合復雜二維碼的生成

當然在實際應用中,這三種實現方式也不是完全孤立的,我們也可以根據項目實際情況結合應用,最大限度地提高效率、節約成本。

晚上時間也不多就選了個jquery-qrcode研究下。

jquery-qrcode

jquery-qrcode是一個能夠在瀏覽器端生成二維碼的jquery插件。它是獨立的,最小壓縮之后不足4k,也沒有圖片下載請求。引入該類庫之后,只需要一行代碼,就可以很容易在web頁面加上二維碼。

其托管在github上:https://github.com/jeromeetienne/jquery-qrcode

jquery-qrcode主要包含兩個文件:

1、qrcode.js:二維碼算法實現類

2、jquery.qrcode.js:用jquery將qrcode.js封裝起來,根據用戶參數,實現canvas及table兩種方式渲染生成二維碼

壓縮之后的只有一個文件jquery.qrcode.min.js。

代碼實現

github上其實已經有了非常詳細的使用說明及示例,在此就不多做說明了。

不過為了方便今后使用,我還是結合網絡上大家的使用心得重新整理一份代碼。

jquery-qrcode.html代碼如下:

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>通過jquery-qrcode生成二維碼</title></head><body><!-- 引入百度CDN公共庫的壓縮版jQuery --><script src="http://libs.baidu.com/jquery/2.0.3/jquery.min.js"></script><!--引入壓縮版jquery.qrcode.js --><script src="jquery.qrcode.min.js"></script><!--未壓縮則需要引入兩個文件jquery.qrcode.js和qrcode.js --><!--jquery.qrcode.js:jquery封裝渲染類庫 --><!--<script src="jquery.qrcode.js"></script>--><!--qrcode.js:二維碼核心計算類庫 --><!--<script src="qrcode.js"></script>--><script src="jquery.qrcode.min.js"></script><!--解決中文亂碼問題,引入utf16t8.js --><script src="utf16to8.js"></script><div id="qrcodeCanvas"></div><div id="qrcodeTable"></div><script> //最簡用法,render默認是canvas $('#qrcodeCanvas').qrcode("http://www.49028c.com/"); //完整用法,有默認值的均可省略 $('#qrcodeTable').qrcode({  text: utf16to8("武林網://www.49028c.com/"),//二維碼包含的內容,默認只支持英文內容,中文會亂碼,通過utf16to8轉碼可支持中文  render: "table",//渲染方式可選擇canvas或table,默認是canvas,canvas方式還支持右鍵圖片下載  width: 256,//寬度,默認是256  height: 256,//高度,默認是256,建議寬度和高度保持一致,否則不容易被識別  typeNumber: -1,//計算模式,默認是-1  //correctLevel: QRErrorCorrectLevel.H,//糾錯等級,默認是QRErrorCorrectLevel.H,但是加上correctLevel這一行后無法渲染出二維碼  background: "#ffffff",//背景顏色,默認是白色  foreground: "#000000"http://前景顏色,默認是黑色 });</script><body></html>

基于官方示例測試,我們會發現識別出來的中文二維碼會是亂碼。

根據網友心存善念的解釋:

這跟js的機制有關系,jquery-qrcode這個庫是采用 charCodeAt() 這個方式進行編碼轉換的,

而這個方法默認會獲取它的 Unicode 編碼,一般的解碼器都是采用UTF-8, ISO-8859-1等方式,

英文是沒有問題,如果是中文,一般情況下Unicode是UTF-16實現,長度2位,而UTF-8編碼是3位,這樣二維碼的編解碼就不匹配了。

解決方式當然是,在二維碼編碼前把字符串轉換成UTF-8

因此我們可以借助utf16to8.js解決這個問題,具體代碼如下:

function utf16to8(str) { var out, i, len, c; out = ""; len = str.length; for (i = 0; i < len; i++) {  c = str.charCodeAt(i);  if ((c >= 0x0001) && (c <= 0x007F)) {   out += str.charAt(i);  } else if (c > 0x07FF) {   out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));   out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));   out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));  } else {   out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));   out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));  } } return out;}

以上就是今天給大家分享的全部內容了,希望能夠對大家學習jQuery有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品中文字| 成人免费黄色网| 国产中文欧美精品| 久久精品亚洲一区| 国产va免费精品高清在线观看| 久久久成人精品视频| 91啪国产在线| 亚洲电影免费观看高清完整版在线| 欧美成人全部免费| 亚洲欧美中文日韩v在线观看| 国产精品爽爽爽| 97精品伊人久久久大香线蕉| 欧美黄色小视频| 国产精品pans私拍| 国产欧美精品一区二区| 久久男人的天堂| 欧美激情精品久久久久久久变态| 正在播放国产一区| 日韩欧美一区二区三区久久| 国产91精品最新在线播放| 欧美在线免费观看| 亚洲xxxxx电影| 日韩免费在线电影| 欧美高清无遮挡| 亚洲综合国产精品| 亚洲xxxxx电影| 亚洲性生活视频在线观看| 久久久久久久国产| 色天天综合狠狠色| 91精品久久久久久久久久另类| 亚洲视频一区二区| 国产精品偷伦免费视频观看的| 精品无码久久久久久国产| 亚洲第一精品久久忘忧草社区| 国产精品吹潮在线观看| 欧美wwwwww| 91精品国产综合久久香蕉922| 国产成人+综合亚洲+天堂| 国产精品久久91| 精品少妇一区二区30p| 日韩高清电影好看的电视剧电影| 国产成人综合亚洲| 亚洲一区二区免费| 亚洲级视频在线观看免费1级| 日韩视频永久免费观看| 国产亚洲精品久久久久久| 亚洲国产精品一区二区三区| 欧美国产精品人人做人人爱| 国产美女直播视频一区| 亚洲性av网站| 91久久精品日日躁夜夜躁国产| 亚洲人成网站色ww在线| 午夜精品一区二区三区视频免费看| 91久久久久久久久久久| 7777精品久久久久久| 亚洲大胆人体视频| 国产拍精品一二三| 亚洲爱爱爱爱爱| 欧美国产精品日韩| 亚洲综合社区网| 欧美精品亚州精品| 日韩精品在线私人| 亚洲a在线播放| 亚洲精品按摩视频| 5566日本婷婷色中文字幕97| 欧美成人精品h版在线观看| 亚洲无限乱码一二三四麻| 亚洲综合小说区| 91天堂在线视频| 亚洲国产又黄又爽女人高潮的| 国产91精品不卡视频| 日韩经典第一页| 91精品中国老女人| 国产精品亚洲аv天堂网| 97超视频免费观看| 亚洲伊人一本大道中文字幕| 国语自产精品视频在线看| 欧美在线视频免费| 91干在线观看| 精品自拍视频在线观看| 日韩成人在线视频观看| 欧美野外wwwxxx| 亚洲国产美女精品久久久久∴| 色视频www在线播放国产成人| 亚洲男人天堂手机在线| 热re99久久精品国产66热| 国产成人精品日本亚洲专区61| 国产精品久久久久9999| 亚洲曰本av电影| 富二代精品短视频| 日韩欧美一区二区三区久久| 亚洲深夜福利在线| 欧美一级成年大片在线观看| 国产精品久久久久秋霞鲁丝| 国内精品免费午夜毛片| 欧美日韩日本国产| 中文字幕精品视频| 国产精品手机播放| 国产日韩精品综合网站| 亚洲欧美激情视频| 久久影院免费观看| 亚洲精品动漫久久久久| 国产精品久久久久久五月尺| 欧美大片在线影院| 欧美激情视频在线免费观看 欧美视频免费一| 91免费精品国偷自产在线| 精品福利在线看| 中文字幕国产亚洲| 激情av一区二区| 亚洲精品国产精品久久清纯直播| 91国内揄拍国内精品对白| 97精品久久久| 国产精品久久综合av爱欲tv| 中文字幕日韩精品在线观看| 91精品成人久久| 精品国产欧美成人夜夜嗨| 久久久成人精品视频| 久久久久久国产精品久久| 久久精品亚洲热| 日韩av在线网址| 欧美成人免费观看| 国产精品99久久久久久人| 欧美大片欧美激情性色a∨久久| 好吊成人免视频| 亚洲伊人久久综合| 久久精品国产清自在天天线| 中文字幕少妇一区二区三区| 国产精品久久久久久久久久久不卡| 亚洲自拍偷拍视频| 亚洲成人网久久久| 国产成人亚洲综合91精品| 午夜精品久久久久久久99热浪潮| 国产一区二区三区在线看| 亚洲精品aⅴ中文字幕乱码| 亚洲色在线视频| 96sao精品视频在线观看| 欧美大片免费观看在线观看网站推荐| 日韩精品中文字幕有码专区| 2019国产精品自在线拍国产不卡| 精品国产乱码久久久久久婷婷| 日韩av电影在线免费播放| 九九热最新视频//这里只有精品| 色哟哟亚洲精品一区二区| 91亚洲精品在线| 精品中文字幕乱| 国内精品国产三级国产在线专| 欧洲中文字幕国产精品| 国产精品视频一区二区三区四| 国产精品99久久久久久白浆小说| 2019中文在线观看| 亚洲电影天堂av| 亚洲精品在线观看www| 欧洲亚洲免费视频| 91在线视频九色| 亚洲欧美一区二区精品久久久| 91精品国产成人www| 中文字幕亚洲在线| 亚洲欧美日韩久久久久久| 久久国产精品久久久久| 色哟哟网站入口亚洲精品| 精品久久久久久国产91| 自拍偷拍亚洲一区| 国产精品美女免费看| 青青草国产精品一区二区|