我正在使用迪莫的JS框架。原始实例工作正常,但即使我不想单击,它也在加载XML。我只在调用Dymo代码时才执行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,问题在哪里?
发布于 2015-10-11 13:38:34
首先,您必须阅读这个一。
简而言之,您正在处理异步代码。因此,这个label.setObjectText("MENO", "test");和其余的代码将在label = dymo.label.framework.openLabelXml(labelXml);行之前执行。
最后,你必须这样做:
<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> https://stackoverflow.com/questions/33065555
复制相似问题