这里可以调用一个jq-qrcode库,然后根据参数往里面传内容即可,本人当时做的是一个名片系统,所以可以生成一个vcf文件在PC端。
具体项目文件请见:https://github.com/marhovey/QRcode;
jq-qrcode直接访问:https://github.com/jeromeetienne/jquery-qrcode;
1、生成微信名片二维码:
function createvcf() {
$(".qrBox").css({display:"block"}); var a, c = $("#name").html().replaceAll(" ", ""), d = $("#title").html().replaceAll(" ", ""), e = $("#adr").html().replaceAll(" ", ""), f = $("#org").html().replaceAll(" ", ""), g = $("#cell").html().replaceAll(" ", ""), h = $("#home").html().replaceAll(" ", ""), i = $("#url").html().replaceAll(" ", ""), j = $("#email").html().replaceAll(" ", ""); e=e.slice(0,e.search("<img")); a = "BEGIN:VCARD", a += "\r\nN:"+ c, d && (a += "\r\nTITLE:" + d), e && (a += "\r\nADR;WORK:;;" + e + ";;;;"), f && (a += "\r\nORG:" + f), g && (a += "\r\nTEL;CELL,VOICE:" + g), h && (a += "\r\nTEL;WORK,VOICE:" + h), i && (a += "\r\nURL;WORK:" + i), j && (a += "\r\nEMAIL;INTERNET,HOME:" + j), a += "\r\nEND:VCARD", $("#qrcode").empty().qrcode({ render: "image", ecLevel: "0" == $("#mode").val() ? "L": "H", size: 300, background: "#fff", fill: $("#fill").val(), radius: $("#radius").val(), mode: 1 * $("#mode").val(), fontcolor: $("#fontcolor").val(), label: c, text: a }) } String.prototype.replaceAll = function(a, b) { return this.replace(new RegExp(a.replace(/([\(\)\[\]\{\}\^\$\+\-\*\?\.\"\'\|\/\\])/g, "\\$1"), "ig"), b) }; document.getElementById('btn').οnclick=function(){ createvcf(); }2、生成域名二维码:
(function () {
'use strict';var jq = window.jQuery;
var guiValuePairs = [ ['size', 'px'], ['minversion', ''], ['quiet', ' modules'], ['radius', '%'], ['msize', '%'], ['mposx', '%'], ['mposy', '%'] ];function updateGui() {
jq.each(guiValuePairs, function (idx, pair) { var $label = jq('label[for="' + pair[0] + '"]'); $label.text($label.text().replace(/:.*/, ': ' + jq('#' + pair[0]).val() + pair[1])); }); } function updateQrCode() { var options = { render: "image", ecLevel: "H", minVersion: parseInt("1", 10),fill: "#333",
background: "#fff",text: document.URL,
//大小
size: parseInt("150", 10),radius: parseInt("0", 10) * 0.01,
quiet: parseInt("1", 10),mode: parseInt("0", 10),
image: jq('#img-buffer')[0]
};jq('#erwm').empty().qrcode(options);
}function update() {
updateGui(); updateQrCode(); }function onImageInput() {
var input = jq('#image')[0]; if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (event) { jq('#img-buffer').attr('src', event.target.result); jq('#mode').val('4'); setTimeout(update, 250); }; reader.readAsDataURL(input.files[0]); } } function init() { jq('#image').on('change', onImageInput); jq(window).load(update); update(); } jq(init);}());3、生成vcf文件:
<?php
header("Content-type: text/html; charset=utf-8"); $name=$_POST["name"]; $title=$_POST["title"]; $adr=$_POST["adr"]; $org=$_POST["org"]; $cell=$_POST["cell"]; $home=$_POST["home"]; $url=$_POST["url"]; $email=$_POST["email"]; $myfile=fopen("index.vcf","w"); $txt="BEGIN:VCARD\r\n"."N:".$name."\r\nORG:".$org."\r\nTITLE:".$title."\r\nADR;TYPE=WORK:;;".$adr."\r\nTEL;TYPE=CELL,VOICE:".$cell."\r\nTEL;TYPE=WORK,VOICE:".$home."\r\nEMAIL;TYPE=PREF,INTERNET:".$email."\r\nEND:VCARD"; fwrite($myfile, $txt); fclose(myfile);?>