首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReferenceError:在Dymo框架中没有定义标签

ReferenceError:在Dymo框架中没有定义标签
EN

Stack Overflow用户
提问于 2015-10-11 13:30:06
回答 1查看 2.5K关注 0票数 0

我正在使用迪莫的JS框架。原始实例工作正常,但即使我不想单击,它也在加载XML。我只在调用Dymo代码时才执行Dymo代码:

代码语言:javascript
复制
<script type="text/javascript">
       function printnow() {              
               $.get("./cont.label", function(labelXml) {
               label = dymo.label.framework.openLabelXml(labelXml);
               }, "text");
               // open label
               // set label text
               label.setObjectText("MENO", "test");
               label.setObjectText("MUNKA", "test");
               label.setObjectText("DESCRIPTION", test);
               // select printer to print on
               // for simplicity sake just use the first LabelWriter printer
               var printers = dymo.label.framework.getPrinters();
               if (printers.length == 0) throw "No DYMO printers are installed. Install DYMO printers.";
               var printerName = "";
               for (var i = 0; i < printers.length; ++i) {
                   var printer = printers[i];
                   if (printer.printerType == "LabelWriterPrinter") {
                       printerName = printer.name;
                       break;
                   }
               }
               if (printerName == "") throw "No LabelWriter printers found. Install LabelWriter printer";
               // finally print the label
               label.print(printerName);

       };
</script> 

不幸的是,在我调用printnow()之后;我得到了ReferenceError: label is not defined,问题在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-11 13:38:34

首先,您必须阅读这个

简而言之,您正在处理异步代码。因此,这个label.setObjectText("MENO", "test");和其余的代码将在label = dymo.label.framework.openLabelXml(labelXml);行之前执行。

最后,你必须这样做:

代码语言:javascript
复制
<script type="text/javascript">
       function printnow() {              
               $.get("./cont.label", function(labelXml) {
               var label = dymo.label.framework.openLabelXml(labelXml);
               // open label
               // set label text
               label.setObjectText("MENO", "test");
               label.setObjectText("MUNKA", "test");
               label.setObjectText("DESCRIPTION", test);
               // select printer to print on
               // for simplicity sake just use the first LabelWriter printer
               var printers = dymo.label.framework.getPrinters();
               if (printers.length == 0) throw "No DYMO printers are installed. Install DYMO printers.";
               var printerName = "";
               for (var i = 0; i < printers.length; ++i) {
                   var printer = printers[i];
                   if (printer.printerType == "LabelWriterPrinter") {
                       printerName = printer.name;
                       break;
                   }
               }
               if (printerName == "") throw "No LabelWriter printers found. Install LabelWriter printer";
               // finally print the label
               label.print(printerName);

               }, "text");

       };
</script> 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33065555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档