jQuery 生成svg矢量二维码


Posted in Javascript onAugust 09, 2016

jQuery 生成矢量svg二维码,并提供PNG,和SVG的页面下载,减轻服务端的压力。

代码如下所示:

<html> 
<head> 
<title>jQuery 生成svg矢量二维码</title> 
</head> 
<body> 
<script type='text/javascript' src='http://cdn.staticfile.org/jquery/2.1.1/jquery.min.js'></script>
<script type="text/javascript" src="http://cdn.staticfile.org/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>
<script type='text/javascript' src='raphael.js'></script>
<script type='text/javascript' src='qrcodesvg.js'></script>
<p>二维码信息:201211070014</p> 
<div id="qrcodeTable"></div> 
<p>二维码信息:gerrard</p> 
<div id="qrcodeCanvas"></div> 
<p>二维码信息:test</p> 
<div id="svg-wrap" class="svg-wrap"></div> 
<br>
<a id="a" href="javascript:saveAsPng()">下载PNG</a> 
<a id="a" href="javascript:saveAsSvg()">下载SVG</a>
<script> 
var qrcodesvg = new Qrcodesvg("http://www.baidu.com", "svg-wrap", 250);
qrcodesvg.draw();
// qrcodesvg.createSquare();
/* //jQuery('#qrcode').qrcode("this plugin is great"); 
jQuery('#qrcodeTable').qrcode({ 
render : "table", 
text : "201211070014" //根据此串生成第一个二维码 
}); 
jQuery('#qrcodeCanvas').qrcode({ 
render : "canvas", 
text : "http://www.csdn.net" //根据此串生成第二个二维码 
}); 
*/
// 下载png图片
function saveAsPng () {
var svgXml = $('.svg-wrap').html();
var image = new Image();
image.src = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(svgXml))); //给图片对象写入base64编码的svg流
// 把svg格式转换成canvas格式
var canvas = document.createElement('canvas'); //准备空画布
canvas.width = $('.svg-wrap svg').width();
canvas.height = $('.svg-wrap svg').height();
var context = canvas.getContext('2d'); //取得画布的2d绘图上下文
context.drawImage(image, 0, 0);
var a = document.createElement('a');
a.href = canvas.toDataURL('image/png'); //将画布内的信息导出为png图片数据
a.download = mathRand(); //设定下载名称
a.click(); //点击触发下载 
}
// 下载svg图片
function saveAsSvg () {
var svgXml = $('.svg-wrap').html();
var image = new Image();
image.src = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(svgXml))); //给图片对象写入base64编码的svg流
var a = document.createElement('a');
a.href = image.src; //直接导出SVG
a.download = mathRand(); //设定下载名称
a.click(); //点击触发下载 
}
// 随机生成数字
function mathRand() { 
var num = ""; 
for(var i = 0 ; i < 6 ; i ++) { 
num+=Math.floor(Math.random()*10); 
} 
return num ;
}
</script> 
</body> 
</html>

以上所述是小编给大家介绍的jQuery 生成svg矢量二维码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
层序遍历在ExtJs的TreePanel中的应用
Oct 16 Javascript
jQuery 自动增长的文本输入框实现代码
Apr 02 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
Mar 12 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
Jun 09 Javascript
JavaScript中的普通函数与构造函数比较
Apr 07 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
Dec 16 Javascript
Javascript同时声明一连串(多个)变量的方法
Jan 23 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
May 11 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
Jun 28 Javascript
jQuery实现可兼容IE6的遮罩功能详解
Sep 19 jQuery
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
JavaScript 装逼指南(js另类写法)
May 10 Javascript
浅谈JavaScript中变量和函数声明的提升
Aug 09 #Javascript
浅谈js基本数据类型和typeof
Aug 09 #Javascript
js中判断变量类型函数typeof的用法总结
Aug 09 #Javascript
详解js实现线段交点的三种算法
Aug 09 #Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 #Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 #Javascript
引用jquery框架后出错的解决方法
Aug 09 #Javascript
You might like
php auth_http类库进行身份效验
2009/03/19 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
2016/02/06 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
python多线程扫描端口示例
2014/01/16 Python
python实现汉诺塔方法汇总
2016/07/25 Python
python八大排序算法速度实例对比
2017/12/06 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
Python中logging日志库实例详解
2020/02/19 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
中专自我鉴定
2014/02/05 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
社区低保工作总结2015
2015/07/23 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
解决mysql的int型主键自增问题
2021/07/15 MySQL
分析Python list操作为什么会错误
2021/11/17 Python
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python