fe-qrcode.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /**
  2. * QR码生成器
  3. */
  4. baidu.qrcode = (function () {
  5. "use strict";
  6. /**
  7. * 二维码上携带的文字
  8. * @type {String}
  9. */
  10. var text = '';
  11. /**
  12. * 创建二维码
  13. */
  14. var createQrCode = function() {
  15. var width = $("#opt_width").val();
  16. var height = $("#opt_height").val();
  17. var foreground = $('#opt_fc').val();
  18. $('#preview').html('').qrcode({
  19. width:width,
  20. height:height,
  21. foreground : foreground,
  22. text:baidu.endecode.utf16to8(text)
  23. });
  24. $('#fieldset_qr').show();
  25. };
  26. /**
  27. * 绑定事件
  28. * @private
  29. */
  30. var _bindEvents = function () {
  31. var current_tab_id = 'tabs-1';
  32. $("#tabs").tabs()
  33. .bind("tabsselect", function (event, ui) {
  34. current_tab_id = ui.panel.id;
  35. })
  36. .tabs("select", 0);
  37. $("#confirm_button").button().click(function () {
  38. $("#preview > img").attr("src", "");
  39. var current_tab = $("#tabs").tabs('option', 'selected');
  40. switch (current_tab) {
  41. case 0 :
  42. text = $.trim($("#tabs-0 #tab0_url").attr("value"));
  43. break;
  44. case 1 :
  45. text = $.trim($("#tabs-1 #tab1_text").attr("value"));
  46. break;
  47. case 2 :
  48. text = "tel:" + $.trim($("#tabs-2 #tab2_telno").attr("value"));
  49. break;
  50. case 3 :
  51. text = $("#tabs-3 [name=tab3_type]:checked").attr("value") + ":" + $.trim($("#tabs-3 #tab3_telno").attr("value")) + ":" + $.trim($("#tabs-3 #tab3_message").attr("value"));
  52. break;
  53. case 4 :
  54. text = "mailto:" + $.trim($("#tabs-4 #tab4_email").attr("value"));
  55. break;
  56. case 5 :
  57. text = "BEGIN:VCARD\nVERSION:3.0\n";
  58. var v = $.trim($("#tabs-5 #tab5_FormattedName").attr("value"));
  59. text += v ? ("FN:" + v + "\n") : "";
  60. v = $.trim($("#tabs-5 #tab5_Telephone").attr("value"));
  61. text += v ? ("TEL:" + v + "\n") : "";
  62. v = $.trim($("#tabs-5 #tab5_Email").attr("value"));
  63. text += v ? ("EMAIL:" + v + "\n") : "";
  64. v = $.trim($("#tabs-5 #tab5_X-MSN").attr("value"));
  65. text += v ? ("X-MSN:" + v + "\n") : "";
  66. v = $.trim($("#tabs-5 #tab5_Organization").attr("value"));
  67. text += v ? ("ORG:" + v + "\n") : "";
  68. v = $.trim($("#tabs-5 #tab5_Title").attr("value"));
  69. text += v ? ("TITLE:" + v + "\n") : "";
  70. v = $.trim($("#tabs-5 #tab5_Address").attr("value"));
  71. text += v ? ("ADR:" + v + "\n") : "";
  72. v = $.trim($("#tabs-5 #tab5_URL").attr("value"));
  73. text += v ? ("URL:" + v + "\n") : "";
  74. text += "END:VCARD";
  75. break;
  76. }
  77. createQrCode();
  78. });
  79. $("#opt_fc").colorpicker({
  80. fillcolor:true,
  81. success : function(obj,color) {
  82. if(text) {
  83. createQrCode();
  84. }
  85. }
  86. });
  87. };
  88. var _init = function () {
  89. $(function () {
  90. _bindEvents();
  91. $('#tab0_url').focus();
  92. });
  93. };
  94. return {
  95. init:_init
  96. };
  97. })();
  98. baidu.qrcode.init();