152 lines
4.1 KiB
HTML
152 lines
4.1 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html lang="en">
|
|||
|
<meta charset="UTF-8">
|
|||
|
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
|
|||
|
<title>手写签名</title>
|
|||
|
<!--<link rel="stylesheet" href="css/style.css">-->
|
|||
|
<style>
|
|||
|
.canvasDiv {
|
|||
|
width: 800px;
|
|||
|
height: 500px;
|
|||
|
border: 1px solid gray;
|
|||
|
}
|
|||
|
|
|||
|
#editing_area {
|
|||
|
width: 800px;
|
|||
|
height: 500px;
|
|||
|
/*border: 1px solid darkred;*/
|
|||
|
}
|
|||
|
#canvasEdit {
|
|||
|
width: 800px;
|
|||
|
height: 500px;
|
|||
|
/*border: 1px solid gold;*/
|
|||
|
}
|
|||
|
|
|||
|
.btnDiv a {
|
|||
|
cursor: pointer;
|
|||
|
}
|
|||
|
</style>
|
|||
|
</head>
|
|||
|
|
|||
|
<body>
|
|||
|
<div class="canvasDiv">
|
|||
|
|
|||
|
<div id="editing_area">
|
|||
|
<canvas id="canvasEdit"></canvas>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<span>身份证:</span>
|
|||
|
<span id="idcard"></span>
|
|||
|
</div>
|
|||
|
<div class="btnDiv">
|
|||
|
<a id="sign_clear" class="clearBtn">清除</a>
|
|||
|
<a id="sign_clear1" class="down none" download="download">下载</a>
|
|||
|
<a id="sign_clear2" class="clearBtn">截屏</a>
|
|||
|
</div>
|
|||
|
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
|
|||
|
<script type="text/javascript" src="../vue/public/js/esign.js"></script>
|
|||
|
<script type="text/javascript" src="../vue/public/js/html2canvas.min.js"></script>
|
|||
|
<script type="text/javascript">
|
|||
|
|
|||
|
|
|||
|
function GetQueryString(name) {
|
|||
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
|||
|
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
|
|||
|
var context = "";
|
|||
|
if (r != null)
|
|||
|
context = r[2];
|
|||
|
reg = null;
|
|||
|
r = null;
|
|||
|
return context == null || context == "" || context == "undefined" ? "" : context;
|
|||
|
}
|
|||
|
|
|||
|
function convertCanvasToImage(canvas) {
|
|||
|
return canvas.toDataURL("image/png");
|
|||
|
};
|
|||
|
|
|||
|
function checkIDCard(idcode){
|
|||
|
// 加权因子
|
|||
|
var weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
|
|||
|
// 校验码
|
|||
|
var check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];
|
|||
|
|
|||
|
var code = idcode + "";
|
|||
|
var last = idcode[17];//最后一位
|
|||
|
|
|||
|
var seventeen = code.substring(0,17);
|
|||
|
|
|||
|
// ISO 7064:1983.MOD 11-2
|
|||
|
// 判断最后一位校验码是否正确
|
|||
|
var arr = seventeen.split("");
|
|||
|
var len = arr.length;
|
|||
|
var num = 0;
|
|||
|
for(var i = 0; i < len; i++){
|
|||
|
num = num + arr[i] * weight_factor[i];
|
|||
|
}
|
|||
|
|
|||
|
// 获取余数
|
|||
|
var resisue = num%11;
|
|||
|
var last_no = check_code[resisue];
|
|||
|
|
|||
|
// 格式的正则
|
|||
|
// 正则思路
|
|||
|
/*
|
|||
|
第一位不可能是0
|
|||
|
第二位到第六位可以是0-9
|
|||
|
第七位到第十位是年份,所以七八位为19或者20
|
|||
|
十一位和十二位是月份,这两位是01-12之间的数值
|
|||
|
十三位和十四位是日期,是从01-31之间的数值
|
|||
|
十五,十六,十七都是数字0-9
|
|||
|
十八位可能是数字0-9,也可能是X
|
|||
|
*/
|
|||
|
var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
|
|||
|
|
|||
|
// 判断格式是否正确
|
|||
|
var format = idcard_patter.test(idcode);
|
|||
|
|
|||
|
// 返回验证结果,校验码和格式同时正确才算是合法的身份证号码
|
|||
|
return last === last_no && format ? true : false;
|
|||
|
}
|
|||
|
|
|||
|
function closeWin() {
|
|||
|
try {
|
|||
|
window.opener = window;
|
|||
|
var win = window.open("", "_self");
|
|||
|
win.close();
|
|||
|
//frame的时候
|
|||
|
top.close();
|
|||
|
} catch (e) {
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function takeScreenshot() {
|
|||
|
html2canvas(document.body, {
|
|||
|
width: document.body.clientWidth / 2 + 1,
|
|||
|
}).then(function(canvas) {
|
|||
|
alert('截取成功');
|
|||
|
var imgUrl = convertCanvasToImage(canvas); //截取图片路径,该路径为服务器参数
|
|||
|
console.log(imgUrl);
|
|||
|
document.querySelector(".down").setAttribute('href', imgUrl);
|
|||
|
$('#sign_clear1').removeClass('none');
|
|||
|
});
|
|||
|
};
|
|||
|
$(function() {
|
|||
|
|
|||
|
var idcard = GetQueryString("idcard")
|
|||
|
if ( ! idcard || ! checkIDCard(idcard)) {
|
|||
|
// alert("身份证号错误, 非法访问!")
|
|||
|
// closeWin()
|
|||
|
} else {
|
|||
|
|
|||
|
$("#idcard").text( idcard )
|
|||
|
|
|||
|
//初始化
|
|||
|
$(document).esign("canvasEdit", "sign_show", "sign_clear", "sign_ok");
|
|||
|
$(document).on('click', '#sign_clear2', takeScreenshot);
|
|||
|
}
|
|||
|
});
|
|||
|
</script>
|
|||
|
</body>
|
|||
|
</html>
|