jquery二维码

这里可以调用一个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').onclick=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);
?>

原文地址:https://www.cnblogs.com/marvey/p/6547066.html