我在.asp页面的末尾有这个功能(是的,旧的asp)。
<script language="JavaScript">
window.print();
printPage();
function printPage() {
if (confirm("The page was printed correctly?")){
window.location.replace('Other.asp');
} else{
window.print();
printPage();
}
}
</script>
当我执行页面并且从不出现打印选项窗口时出现问题。每次按下NO按钮但从不显示打印窗口时,显示确认窗口。
如果我犯了错误,对不起我的英语......
非常感谢!!!! 来自阿根廷的古斯塔沃.-
答案 0 :(得分:1)
window.print()
正在异步执行,因此会立即调用您的printPage()
函数。等等,如果你按“否”。
答案 1 :(得分:0)
正如this answer正确提到的那样,它一旦被调用就会执行,触发本机打印对话框,而不是等到用户实际打印(或取消)页面。你无法知道这种情况何时发生。
也就是说,解决这个问题的一种方法是在HTML文档中放入一条消息,该消息最初将被隐藏,并且只有在发送打印命令后才会显示:
<div id="pnlPrintConfirm" style="display: none;">
The page was printed correctly?
<button type="button" onclick="window.location.replace('Other.asp');">Yes</button>
<button type="button" onclick="printPage();">No</button>
</div>
JavaScript:
function printPage() {
//get placeholder element:
var oDiv = document.getElementById("pnlPrintConfirm");
//hide so it won't get printed after first print:
oDiv.style.display = "none";
//send print command:
window.print();
//show confirmation panel:
oDiv.style.display = "block";
}
请记住最初拨打printPage()
而不是您目前的代码。