二维码又称QR Code,是一个近几年来移动设备上很流行的一种编码方式它比传统的一维码(条形码)能存更多的信息,也能表示更多的数据类型。按照一定规律排列组成的几何图形构成,它巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念

生活中的应用也是非常的广泛

人们的生活方方面面都离不开二维码,而且她也给人们带来了极大的便利。

<br><br> (二维码自动识别)

二维码有哪些优缺点:

优点:

  • 1.高密度编码,信息容量大。
  • 2.编码范围广。
  • 3.容错能力强,具有纠错功能。
  • 4.译码可靠性高。
  • 5.可引入加密措施。
  • 6.成本低,易制作,持久耐用。

缺点:

  • 1.个人信息泄露 (火车票上都已经有了可以储存个人信息的二维码)
  • 2.识别二维码的设备还不够丰富。

QRCode.js

下面进入正题,如何用js生成二维码,
QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。可以快速的在web页面中绘制出二维码。

通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库

引入相应js文件 :

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>`
<script src="https://cdn.bootcdn.net/ajax/libs/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>

在html中设置页面容器。用来承载生成之后的二维码显示

调用:

$(网页容器).qrcode({宽度:值,高度:值,内容:值});

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><script src="jquery-1.8.3.js"></script><script src="jquery.qrcode.min.js"></script><title></title>
</head>
<script>function demo(){// $(网页容器).qrcode({宽度:值,高度:值,内容:值});$("#code").qrcode({wihth:150,height:200,text:"HellowWord"});}
</script>
<body><div id="code"></div><button onclick="demo()">点我生成</button>
</body>
</html>

注意:

但是有可能中文会出现乱码

编写方法转换中文内容,接收参数判断当前数据的Unicode

function utf16to8(str) {  var out, i, len, c;  out = "";  //创建空变量保存结果len = str.length; //设置传入形参数据长度for(i = 0; i < len; i++) {  c = str.charCodeAt(i);  //返回字符串第一个字符的 Unicode 编码: if ((c >= 0x0001) && (c <= 0x007F)) {  //判断Unicode 编码范围out += str.charAt(i);  } else if (c > 0x07FF) {  //将 Unicode 编码转为一个字符out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));  out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));  out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));  } else {  //将 Unicode 编码转为一个字符out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));  out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));  }  }  //返回出结果return out;
}

最终在使用时调用当前方法进行中文转换

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><script src="jquery-1.8.3.js"></script><script src="jquery.qrcode.min.js"></script><script src="handler-chinese.js"></script><title></title>
</head>
<style>#demodiv{text-align: center;}#demodiv>input{outline: none;border: 1px red solid;width: 300px;height: 50px;font-size: 30px;padding-left: 10px;}
</style>
<script>function demo(){//获取输入框结果var text=$("#demodiv>input").val();//调用装换方法var newText=utf16to8(text)//设置范围大小并且设置生成二维码内容$("#code").qrcode({wihth:150,height:200,text:newText});}
</script>
<body><div id="demodiv" ><h1>QRCode生成二维码</h1><input type="text"/><!--调用转换方法--><button onclick="demo()">点我生成</button></div>
<div id="code"></div>
</body>
</html>

浏览器兼容性

IE6〜10,Chrome,Firefox,Safari,Opera,Mobile Safari,Android,Windows Mobile,ETC。

总结

QRCode.js 是用于制作 QRCode 的JavaScript库。QRCode.js 通过 HTML5 Canvas 和DOM中的表格标签支持跨浏览器。QRCode.js 没有依赖关系。通过 QECode.js 可以非常方便的在web 页面中使用二维码。让我们在应用中便捷的使用,扩展了项目的适用范围。让用户可以快捷的访问相关资源。提升项目的用户体验,使我们的应用更加符合当下用户的适用习惯,增加用户的黏性。

以上与大家分享的内容,如果需要学习教程、源码笔记的或者想学习交流,扫码加我拉你进群

教你js生成二维码-QrCodeJS相关推荐

  1. JS生成二维码(兼容各种浏览器及中文)

    本文将介绍如何使用JS生成二维码,兼容各种浏览器及手机端,支持中文. 代码如下: <!DOCTYPE html> <html> <head> <meta ch ...

  2. js生成二维码以及插入图片

    js生成二维码以及插入图片 先根据qrcode官网demo,不同属性值的变化,二维码的变化效果:https://larsjung.de/jquery-qrcode/latest/demo/ 进入dem ...

  3. JS生成二维码以及点击下载二维码

    JS生成二维码 效果 扫描二维码可访问指定链接或当前网站链接,内容可以自己更改 "复制链接",点击按钮复制当前网站链接 如何获取当前网站链接 源码 textarea{opacity ...

  4. qrcode.js使用js生成二维码(并下载)的实践

    知识点 base64数据形式 Base64是一种用64个字符来表示任意二进制数据的方法. – 廖雪峰官方网站 Base64编码有哪些情景需求? – 知乎 案例场景 后台生成邀请链接,前端拿到链接之后处 ...

  5. qrcode——js生成二维码

    1.引入 qrcode.min.js(点击下载demo) 2.html: <div id="qrcode"></div> js: var qrcode = ...

  6. HTML5 使用 JS 生成二维码,带头像

    一般在项目开发中,前端显示给用户扫描的二维码基本都是由后端代码生成的,那么这个高大上的功能能不能用 JS 来绘制呢? 答案是肯定的 首先我们需要一个插件 jquery.qrcode.js,该插件基于  ...

  7. js 生成二维码_js 生成二维码

    qrcode.min.js 下载地址: jeromeetienne/jquery-qrcode​github.com 页面中: <div class="page"> & ...

  8. js 生成二维码_Node for Max 二维码生成器

    "Node for Max"是 Max8 的新功能,通过它可以在 Max 中方便的调用 NodeJS.充分利用 NodeJS 海量的 NPM 库,能大大扩展 Max 的可能性. 官 ...

  9. qrcode.js 生成二维码包含logo和背景图片及IE下载二维码

    思路: 1. 通过qrcode.js 生成带logo的二维码 2. 将背景图片.logo与生成的二维码图通过canvas 绘制在一起形成一个新的canvas 3. 将canvas 转成base64的u ...

  10. JS 生成二维码实现(qrcode.js)

    qrcode.js源码地址: https://github.com/jeromeetienne/jquery-qrcode 使用 页面引入QRCode.js和JQuery.js <script ...

最新文章

  1. 用mendeley在word中插入文献_Mendeley在Word添加工具栏和插入和删除文献的方法 | 科研动力...
  2. java设计模式:简单工厂模式
  3. 在SQL2005/SQL2008中CTE用法差异
  4. hashCode()、equals()以及compareTo()方法的理解
  5. RUP大讲堂(第三讲):如何建立软件产品的愿景
  6. Ubuntu16.04--code::blocks16.01 的代码拷贝到Windows 8.1--visual studio 2013 注意事项
  7. IP(Internet Protocal) 地址 说明
  8. dataset中的数据批量导入oracle数据库,C#如何把某个文件夹下的所有Excel文件导入Oracle数据库。详细点!...
  9. WIN10华硕解决无法调节电脑亮度
  10. Ubuntu使用问题(一):Ubuntu不能正常关机的解决方法
  11. 网络工程数据通信课程设计之--校园小型网络规划与设计
  12. 中望CAD机械版学习-1-基础操作
  13. 3dsmax2014插件开发之环境搭建
  14. 【新书速递】评分卡建模红宝书,夯实智能风控底座
  15. .net 与directX
  16. 最小公倍数,甲、乙、丙三人是朋友, 他们每隔不同天数到图书馆去一次。 甲3天去一次,乙4天去一次,丙5天去一次。有一天,他们三人恰好在图书馆相会,问至少再过多少天他们三人又在图书馆相会?
  17. Cisco路由器忘记密码
  18. 2018.12.06 课后习题作业
  19. 互相监督,先从5公里跑步开始
  20. 做设计选电脑的最全攻略

热门文章

  1. java做eda开发_Java学习笔记——EDA事件驱动架构,你掌握了吗
  2. 计算机一直显示配置更新开不了机怎么办,电脑开机出现配置更新怎么办
  3. My_arduino(4)-------LiquidCrystal_I2C库文件
  4. Django Book 2.0 翻译
  5. DjangoBook2.0 中文版:电子书
  6. mysql不是内部命令_mysql不是内部命令的错误解决方案
  7. 跨实例查询 mysql_SQL语句怎么搞定跨实例查询?
  8. Labview双通道虚拟示波器完整程序 实现功能如下图
  9. 机器学习 —— 神经网络(matlab)
  10. 微管理——给你一个技术团队,你该怎么管