想要在手机上上访问pc端的一个页面,现在很常见的做法是提供一个二维码,让用户通过手机扫码软件识别后用浏览器打开,这样就实现了页面地址数据的传输。某天做完一个页面后,想在手机上看看效果,一边手动输入页面地址,一边就萌生了为站点添加一个二维码的念头。
小鸟数据主站引用了jquery,对于博主这样的编程热情高于能力的人来说,jquery是个很方便的工具,能够很方便的修改一些类名,实时插入或删除页面上的一些元素,让页面表现更为动态与生动。也因为有现成的jquery环境,所以想用一个jquery插件来实现这样一个功能,而jquery也确实具备这样的插件也就是下面要介绍的:"jQuery.qrcode.min.js"。
静态资源引用
小鸟数据当前运行在1核2g的天翼低配服务器上,所以很多标准化的代码都引用了字节跳动的静态资源,比如jquery的包:
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/1.12.4/jquery.min.js" type="application/javascript"></script>
字节跳动的静态库涵盖范围较广,也涵盖了"jquery.qrcode"这个插件,引用地址如下:
<script src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery.qrcode/1.0/jquery.qrcode.min.js" type="application/javascript"></script>
插件的使用
仅提供一个地址的时候,会根据默认的参数在id为“qrcode”的元素中插入一个256像素的二维码:
<script>
jQuery(function(){
jQuery('#qrcode').qrcode("https://www.baidu.com/");
})
</script>
因为博主也没有什么其他的库,又觉得256像素的图片有点过大,所以修改了一下尺寸,地址采用了“location.href”,即当前页面的地址。因为这个二维码只会出现在包含id为“qrcode”元素的页面,所以外面加了一条判断语句。
$(function(){
if($('#qrcode')){
$('#qrcode').qrcode({width: 160,height: 160,text:location.href});
}
});
实际生成的效果如文章下方的二维码所示,就不另行截图了。
修改前景色与背景色
$('#qrcode').qrcode({
foreground: "lightseagreen",
background: "#FFF",
text: location.href
});
含中文网址的转码方法
对于包含中文的地址,需要对地址进行“encodeURI”转码后才能够正确生成二维码:
$("#output").qrcode(encodeURI("http://中文中文"));
关于扫码
二维码的背后是一段可能被执行的代码,网上因为扫码被骗的案例也屡见不鲜,博主刚开淘宝店铺的时候,也遇到过类似的骗局,骗子提供了一个二维码,说是博主的宝贝链接不能正确被拍下,让扫码咨询下客服什么的。因为是导向淘宝外部的一个链接,比较容易识别,所以也没搭理,但过了几天,在知乎上却看到了一名答主被相同手段忽悠乃至被骗的分享...所以这里也顺便提醒一下来访的亲们,扫码之后也要认真核对一下网址与站点logo是否正确哦。