1. 程式人生 > >一個簡單的qrcode.js二維碼例項

一個簡單的qrcode.js二維碼例項

  • 業務背景:背景比較簡單就是將資料存入二維碼中並生成二維碼!

  •  程式碼:  

1. qrcode.jsp      (所需要的依賴 qrcode.min.js  自行百度下載) 

在jsp中引入qrcode.min.js
<script src="<%=basePath%>/libs/qrcode.min.js"></script>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
		String basePath = request.getScheme() + "://" + request.getServerName() + ":" + 
					request.getServerPort() + request.getContextPath();
		String url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getRequestURI()+"?"+request.getQueryString();

 %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="<%=basePath%>/libs/jquery/jquery.min.js"></script>
<script src="<%=basePath%>/libs/qrcode.min.js"></script>
<script src="<%=basePath%>/common/js/config.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>二維碼</title>
<style type="text/css">
	 #qrcode {
	 	 position: absolute;
	    left: 50%;
	    top: 50%;
	    transform: translate(-50%,-50%);
	} 
</style>
</head>
<body>
<input type="hidden" id='url' value='<%=url%>' readonly="readonly"/>
<div id='qrcode'></div>
</body>
<script type="text/javascript">

	var url=$('#url').val();
        //從請求路徑上獲取到請求引數
	var data=parent.parseURLargs(url);

        //將引數拼接到二維碼需要跳轉的頁面url上
	var phoneUrl=parent.createURL(CONF_CONTROLLINE_PHONE_SERVIERURL,data);

	var qrcode = new QRCode(document.getElementById('qrcode'), {
	  text: phoneUrl,
	  width: 150,
	  height: 150,
	  colorDark : '#000000',
	  colorLight : '#ffffff',
	  correctLevel : QRCode.CorrectLevel.H
	});
//	qrcode.clear(); //清除二維碼
//	qrcode.makeCode('new content');//設定二維碼內容

</script>

</html>

 2.父頁面生成二維碼的方法

//生成二維碼
function createQrcode(proid){
//url拼時間戳防止快取  不是必須的
	var time=new Date().getTime();
	var hz='&t='+time
	var qrcodeUrl=createURL('qrcode.jsp',proid);
	layer.open({
		type: 2,
		title:false,
		closeBtn: 2,
		anim: 1,
		shadeClose :true,
		scrollbar: false,
		area: ['200px','200px'],
		content:qrcodeUrl+hz
	});

}
  • 截止到現在二維碼已經生成!

 附帶上面兩個相關url拼接引數和解析url上的引數的方法

//將物件解析拼到url上
function createURL(url, param) {
	console.log(param);
    var urlLink = '';

//拼單個引數
    if( typeof param =='string'){
	    
	    urlLink = url + "?proid=" + param;
//拼json物件
    }else{
    	$.each(param, function(item, key) {
	        var link = '&' + item + "=" + key;
	        urlLink += link;
	    })
    	urlLink = url + "?" + urlLink.substr(1);
    }
    return encodeURI(urlLink.replace(' ', ''));

}
//解析url上的引數  解析為json物件
function parseURLargs(url) {
    var _url=decodeURI(url);
    var result = {};
    if (_url.indexOf('?') > -1) {
        var str = _url.split('?')[1];  
        var temp = str.split('&');  
        for (var i = 0; i < temp.length; i++) {     
            var temp2 = temp[i].split('=');     
            result[temp2[0]] = temp2[1];  
        }  
    }
    return result;
}

業務比較簡單程式碼寫的比較糙,歡迎指正!