javascript - 引用错误: label is not defined in Dymo framework

标签 javascript dymo

我正在玩Dymo的JS框架。 original example工作没有问题,但即使我不想单击,它也会加载 XML。我重写为仅在调用 Dymo 代码时执行它:

<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 问题出在哪里?

最佳答案

首先你必须阅读这篇文章 one

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

最后,你必须做这样的事情:

<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> 

关于javascript - 引用错误: label is not defined in Dymo framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33065555/

相关文章:

python - PyUSB Stop Dymo 从自动关闭中缩放

javascript - 在固定在顶部之前,如何使粘性导航栏在英雄底部显示透明?

javascript - 如何根据当前页面高度调整具有渐变图像的大小?

javascript - DYMO LabelWriter 获取打印回调

excel - 从 Excel VBA 打印到 DYMO 打印机

javascript - Dymo JavaScript API 可以连接到托管在同一网络上不同机器上的 Dymo Web 服务吗?

javascript - 错误 : How to serialize data from getStaticProps : Next. js

javascript - 我可以为圆弧的结束 Angular 设置动画吗?

javascript - jquery:当页面= 1时隐藏按钮

vb.net - MeasureText() - SizeF 到英寸