我尝试在新窗口中生成条形码,并在新窗口中运行条形码生成器,但似乎无法在新窗口中生成所述条形码。我尝试使用window. focus(),但似乎不起作用。如果能在新窗口中生成条形码,而不在脚本要求使用输入的页面上显示条形码,我将非常感谢。
function doAll(value) {
var newWin = window.open('', '_blank');
newWin.document.write('<svg id="barcode"></svg>');
newWin.focus();
generateBar(value);
}
function generateBar(value) {
JsBarcode('#barcode', value, {
format: 'code128',
displayValue: true,
width: 1.8,
height: 60
});
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Generate Barcode</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.css">
<script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.11.0/dist/JsBarcode.all.min.js">
</script>
</head>
<body>
<form>
Enter Number: <input name="packageID" type="text" onchange="doAll(this.value)">
</form>
</body>
</html>
1条答案
按热度按时间ovfsdjhp1#
JsBarcode('#barcode',
这里的选择器将查找
document.querySelector
,但是查找JsBarcode的源代码可以接受一个元素,因此您可以从newWin
中获取该元素并将其传递给JsBarcode
。示例..