<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>
<body>
<input id="print" type="submit" value="Submit">
</body>
</html>
<script>
$("#print").click(function () {
print();
});
function print() {
var winPrint = window.open('ABC');
winPrint.document.write('<html><head><title>Title</title></head><body>');
winPrint.document.write("BODY");
winPrint.document.write('</body></html>');
winPrint.document.close();
winPrint.focus();
window.stop();
$(winPrint).on('load', function () {
winPrint.print();
winPrint.close();
});
}
</script>
当我第一次点击按钮打印工作但我下次点击按钮时打印不起作用。请解释一下为什么我一直在使用winPrint.document.write('<html><head><title>Title</title></head><body>');
新页面加载并且代码winPrint.print();
无效。
$(document).ready(function () {
winPrint.print();
winPrint.close();
});
当我使用文档就绪代码时,当我在
中有大量数据时,结果是一样的winPrint.document.write( “BODY”);
如何更改我的代码才能正常工作?
答案 0 :(得分:0)
因此,在致电winPrint.close()
后,您无法致电winPrint.print()
。您理想的是为用户提供新窗口底部的选项以关闭窗口 - 这通常是您在网络上看到的内容。通过close()
之后调用print()
,您可能会在打印对话显示之前关闭窗口的风险。
另外,请尝试将document.write
调用限制为仅限一个,因此请将要放入新窗口的所有html放入变量中。
看看下面这个例子。
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>
<body>
<input id="print" type="submit" value="Submit">
</body>
</html>
<script>
$("#print").click(function () {
print();
});
function print() {
var winPrint = window.open("", "ABC");
winPrint.document.write("<p>Some content</p><p>Some more content</p>");
winPrint.print();
}
</script>
在向window.open(URL,name,specs,replace)
函数传递参数时,您还要小心。它需要4个可选参数。当你试图命名你的窗口时,你实际上是在传递URL参数,这就是为什么它没有做你想要的。只需传入一个空字符串,它将假定它是一个_blank窗口。
答案 1 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>
<body>
<input id="print" type="submit" value="Submit">
</body>
</html>
<script>
$("#print").click(function () {
print();
});
function print() {
var winPrint = window.open("", "ABC");
winPrint.document.write("<img src='http://upload.wikimedia.org/wikipedia/commons/3/3f/Fronalpstock_big.jpg'></img>");
winPrint.print();
}
</script>
您的代码有效,因为在正文标记中您的内容很少。上面的代码显示在加载图像之前调用print函数,因为print页面是空的。
我希望使用文档就绪函数在加载图像时调用print(),但它不起作用。
如何更改我的代码才能正常工作?