简单js条码生成器

<!doctype html>
<html>
    <head>
    <meta charset="utf-8">
    <title>条形码生成器by逊王之王</title>
    <style type="text/css">
        .barcode {
        float: left;
        clear: both;
        padding: 0 10px; /*quiet zone*/
        overflow: auto;
        height: 0.5in; /*size*/
        }
        .right {
            float: right;
        }
        .barcode + * {
            clear: both;
        }
        .barcode div {
            float: left;
            height: 0.35in; /*size*/
        }
        .barcode .bar1 {
            border-left: 1px solid black;
        }
        .barcode .bar2 {
            border-left: 2px solid black;
        }
        .barcode .bar3 {
            border-left: 3px solid black;
        }
        .barcode .bar4 {
            border-left: 4px solid black;
        }
        .barcode .space0 {
            margin-right: 0
        }
        .barcode .space1 {
            margin-right: 1px
        }
        .barcode .space2 {
            margin-right: 2px
        }
        .barcode .space3 {
            margin-right: 3px
        }
        .barcode .space4 {
            margin-right: 4px
        }
        .barcode label {
            clear: both;
            display: block;
            text-align: center;
            font: 0.125in/100% helvetica; /*size*/
        }
        /*** bigger ******************************************/
        .barcode2 {
            float: left;
            clear: both;
            padding: 0 10px; /*quiet zone*/
            overflow: auto;
            height: 1in; /*size*/
        }
        .barcode2 + * {
            clear: both;
        }
        .barcode2 div {
            float: left;
            height: 0.7in; /*size*/
        }
        .barcode2 .bar1 {
            border-left: 2px solid black;
        }
        .barcode2 .bar2 {
            border-left: 4px solid black;
        }
        .barcode2 .bar3 {
            border-left: 6px solid black;
        }
        .barcode2 .bar4 {
            border-left: 8px solid black;
        }
        .barcode2 .space0 {
            margin-right: 0
        }
        .barcode2 .space1 {
            margin-right: 2px
        }
        .barcode2 .space2 {
            margin-right: 4px
        }
        .barcode2 .space3 {
            margin-right: 6px
        }
        .barcode2 .space4 {
            margin-right: 8px
        }
        .barcode2 label {
            clear: both;
            display: block;
            text-align: center;
            font: 0.250in/100% helvetica; /*size*/
        }
        .divCent {
            width: 100%;
            background-color: transparent;
            text-align: center;
            margin: 0 auto;
        }

    </style>
    <script type="text/javascript">
        (function() {
            if (!exports)
                var exports = window;
            var BARS = [ 212222, 222122, 222221, 121223, 121322, 131222, 122213,
                    122312, 132212, 221213, 221312, 231212, 112232, 122132, 122231,
                    113222, 123122, 123221, 223211, 221132, 221231, 213212, 223112,
                    312131, 311222, 321122, 321221, 312212, 322112, 322211, 212123,
                    212321, 232121, 111323, 131123, 131321, 112313, 132113, 132311,
                    211313, 231113, 231311, 112133, 112331, 132131, 113123, 113321,
                    133121, 313121, 211331, 231131, 213113, 213311, 213131, 311123,
                    311321, 331121, 312113, 312311, 332111, 314111, 221411, 431111,
                    111224, 111422, 121124, 121421, 141122, 141221, 112214, 112412,
                    122114, 122411, 142112, 142211, 241211, 221114, 413111, 241112,
                    134111, 111242, 121142, 121241, 114212, 124112, 124211, 411212,
                    421112, 421211, 212141, 214121, 412121, 111143, 111341, 131141,
                    114113, 114311, 411113, 411311, 113141, 114131, 311141, 411131,
                    211412, 211214, 211232, 23311120 ], START_BASE = 38, STOP = 106;
            function code128(code, barcodeType) {
                if (arguments.length < 2)
                    barcodeType = code128Detect(code);
                if (barcodeType == ‘C‘ && code.length % 2 == 1)
                    code = ‘0‘ + code;
                var a = parseBarcode(code, barcodeType);
                return bar2html(a.join(‘‘)) + ‘<label>‘ + code + ‘</label>‘;
            }

            function bar2html(s) {
                for (var pos = 0, sb = []; pos < s.length; pos += 2) {
                    sb.push(‘<div class="bar‘ + s.charAt(pos) + ‘ space‘
                            + s.charAt(pos + 1) + ‘"></div>‘);
                }
                return sb.join(‘‘);
            }

            function code128Detect(code) {
                if (/^[0-9]+$/.test(code))
                    return ‘C‘;
                if (/[a-z]/.test(code))
                    return ‘B‘;
                return ‘A‘;
            }

            function parseBarcode(barcode, barcodeType) {
                var bars = [];
                bars.add = function(nr) {
                    var nrCode = BARS[nr];
                    this.check = this.length == 0 ? nr : this.check + nr * this.length;
                    this.push(nrCode || ("UNDEFINED: " + nr + "->" + nrCode));
                };
                bars.add(START_BASE + barcodeType.charCodeAt(0));
                for (var i = 0; i < barcode.length; i++) {
                    var code = barcodeType == ‘C‘ ? +barcode.substr(i++, 2) : barcode
                            .charCodeAt(i);
                    converted = fromType[barcodeType](code);
                    if (isNaN(converted) || converted < 0 || converted > 106)
                        throw new Error("Unrecognized character (" + code
                                + ") at position " + i + " in code ‘" + barcode + "‘.");
                    bars.add(converted);
                }
                bars.push(BARS[bars.check % 103], BARS[STOP]);
                return bars;
            }
            var fromType = {
                A : function(charCode) {
                    if (charCode >= 0 && charCode < 32)
                        return charCode + 64;
                    if (charCode >= 32 && charCode < 96)
                        return charCode - 32;
                    return charCode;
                },
                B : function(charCode) {
                    if (charCode >= 32 && charCode < 128)
                        return charCode - 32;
                    return charCode;
                },
                C : function(charCode) {
                    return charCode;
                }
            };

            // --| Export
            exports.code128 = code128;
        })();

        /*
         * showDiv:代表需要显示的divID, textVlaue : 代表需要生成的值, barcodeType:代表生成类型(A、B、C)三种类型
         *
         */
        function createBarcode(showDiv, textValue, barcodeType) {
            var divElement = document.getElementById(showDiv);
            divElement.innerHTML = code128(textValue, barcodeType);
        }
        function createBarcode2(showDiv, textValue, barcodeType) {
            var divElement = document.getElementById(showDiv);
            divElement.innerHTML = code128(textValue, barcodeType);
        }

        /*****************************************上方为基础JS******************************************/
        /*
         * 页面加载时先选择B类型
         */
        function onloadfct() {
            document.getElementById("hidStr").value = ‘B‘;
            selectText();
        }
        /*
         * 选择类型时将类型值赋给隐藏控件
         */
        function ChangeDdl(obj) {
            document.getElementById("hidStr").value = obj.value;
        }
        var num = 1;    //全局变量存储按钮点击次数
        /*
        *生成条形码的方法
        */
        function creta(){
            var a = num++;
            var divid = "div"+a;    //定义div的id
            document.all.pertxt.innerHTML = "";    //清空说明文档
            document.all.tddiv.innerHTML = "</br><div class=‘barcode2‘ style=‘text-align:center;‘ id=‘"+divid+"‘></div></br></br>"+document.all.tddiv.innerHTML;
            createBarcode(divid,document.all.txtCode.value,document.all.hidStr.value);
            document.all.btn.value="生成了"+a+"个";
            selectText();
        }
        /*
         *    设置快捷键
         */
        document.onkeydown = function(e){
            if((e||event).keyCode==13){        //按下enter键
                creta();
            }
            if((e||event).keyCode==9){        //按下tab键
                creta();
            }
            if((e||event).keyCode==46){        //按下delete键
                history.go(0);
            }
            if((e||event).keyCode==36){        //按下home键
                history.go(0);
            }
        };
        /*
        *文本框焦点和全选
        */
        function selectText(){
            document.getElementById("txtCode").focus();
            document.getElementById("txtCode").select();
        }
    </script>
    </head>

    <body onload="onloadfct();">
        <input id="hidStr" name="hidStr" type="hidden" />
        <table width="100%" border="0" id="tab">
            <tr height="50px">
              <td width="30%">&nbsp;</td>
              <td width="40%">条码:<input type="text" id="txtCode" style="width:300px;"></td>
              <td width="30%">&nbsp;</td>
            </tr>
            <tr height="50px">
              <td>&nbsp;</td>
              <td>
                  形状类型:
                  <label><input name="rad" type="radio" onclick="ChangeDdl(this);" value="A" />A</label>
                  <label><input name="rad" type="radio" onclick="ChangeDdl(this);" checked value="B" />B</label>
                  <label><input name="rad" type="radio" onclick="ChangeDdl(this);" value="C" />C</label>
                  <input type="button" value ="生成(enter)" title="快捷键:enter或者tab" id="btn"  style="width:80px;" onclick="creta();"/>
                  <input type="button" value ="重置(delete)" title="快捷键:delete或者home"  style="width:80px;" onclick="history.go(0);"/>
              </td>
              <td>&nbsp;</td>
            </tr>
            <tr height="150px">
              <td>&nbsp;</td>
              <td id="tddiv">
              <pre id="pertxt" style="color:#021294; width:360px; white-space: pre-wrap; line-height:2; font-size:14px;">
说明:
    1:在条码文本框输入想要生成条码的内容,点击生成按钮(快捷键enter或者tab)生成条码。
    2:为方便扫码后查看历史条码,条码可以无限生成,排在最上面的条码永远是最新的条码。
    3:点击重置按钮(快捷键delete或者home)将会刷新整个页面,已经生成的条码将会清空,此操作不可逆。
    4:形状类型分A、B、C、3种,默认使用B类型,也是最实用的类型,可以输入数字和英文字符,如果发现生成的二维码跟实际不符合,可以切换形状类型后尝试。
    5:点击生成按钮后,条形码文本框自动全选,方便输入下一个条形码。
    6:本代码紧做参考,如需扩展请自行修改html源码,源码中都有相应注释。

作 者:逊王之王
出 处:<a href="http://www.cnblogs.com/yeyerl" target="_blank">http://www.cnblogs.com/yeyerl</a>
              </pre>
              </td>
              <td></td>
            </tr>
        </table>
    </body>
</html>

下面是效果图

时间: 2024-10-13 14:41:41

简单js条码生成器的相关文章

js基础 1.简单js 语法 关键字 保留字 变量

简单js JavaScript 是一个松散性的语言 对象属性却不想c中的结构体或者c++ 和java的对象, 对象继承机制 使用原型的prototype(原型链),js的分为三部分ECMAScript .文档DOM对象.浏览器BOM对象 1. 核心(ECMAScript) (语法.类型.语句.关键字.保留字.操作符.对象等)Ie6.7.8 第三版(ECMA-262) 兼容 2.文档对象 dom(ie6-7 基本都dom 一级(基本操作都可以),) 3.浏览器对象模型 BOM (控制浏览器显示无标

[Ruby on Rails系列]6、一个简单的暗语生成器与解释器(上)

[0]Ruby on Rails 系列回顾 [Ruby on Rails系列]1.开发环境准备:Vmware和Linux的安装 [Ruby on Rails系列]2.开发环境准备:Ruby on Rails开发环境配置 [Ruby on Rails系列]3.初试Rails:使用Rails开发第一个Web程序 [Ruby on Rails系列]4.专题:Rails应用的国际化[i18n] [Ruby on Rails系列]5.专题:Talk About SaSS [1]任务目标 本次主要是要实现一

一个简单的ruby生成器例子(用连续体Continuation实现)

ruby中有很多经典的驱动器结构,比如枚举器和生成器等.这次简单介绍下生成器的概念.生成器是按照功能要求,一次产生一个对象,或称之为生成一个对象的方法.ruby中的连续体正好可以用来完成生成器的功能.连续体说起来晦涩,其实还是很简单的,它有3个特点: 1. callcc方法会给代码块传一个连续体对象,你可以保存该对象; 2. 当调用连续体的call方法时指令流会跳转到callcc方法之后; 3. 如果给连续体的call方法传递对象,则callcc方法会返回该对象,如果不传递对象,callcc会返

简单JS全选、反选代码

1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml"> 3<head> 4<meta http-equiv="Cont

[JS4] 最简单JS框架

1 <html> 2 <head> 3 <title></title> 4 <SCRIPT TYPE="text/JavaScript"> 5 <!-- 6 document.write("看!这是我的第一个脚本") 7 //--> 8 </SCRIPT> 9 </head> 10 <body> 11 </body> 12 </html>

java qr二维条码生成器

原文:java qr二维条码生成器 代码下载地址:http://www.zuidaima.com/share/1550463250156544.htm qr二维码,不过是未加密的 标签: java 二维码 qr二维码话题: 文本解析和文件处理 脚本和工具 java qr二维条码生成器

简单js实现竖行tab切换

<!DOCTYPE ><html lang="ru"><head><title>简单js实现竖行tab切换</title><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><style type="text/css">*{margin:0;padding:0; -

记录工作用到的一个简单js脚本

测试极光发送通知接口及客户端处理情况,需在极光后台增加通知数据.由于需要多个输入框输入数据,浏览器关闭后又需重新输入数据,故作此简单js脚本,在浏览器开发者模式下执行,便自动向浏览器输入框输入数据. document.getElementsByTagName("textarea")[0].value="专家说文章测试切入横幅跳转测试切入横幅跳转" document.getElementsByClassName("input-global-blue-shad

python爬虫的一个常见简单js反爬

python爬虫的一个常见简单js反爬 我们在写爬虫是遇到最多的应该就是js反爬了,今天分享一个比较常见的js反爬,这个我已经在多个网站上见到过了. 我把js反爬分为参数由js加密生成和js生成cookie等来操作浏览器这两部分,今天说的是第二种情况. 目标网站 列表页url:http://www.hnrexian.com/archives/category/jk. 正常网站我们请求url会返回给我们网页数据内容等,看看这个网站返回给我们的是什么呢? 我们把相应中返回的js代码格式化一下,方便查