我有一个可以打印某些内容的应用程序。为此,我要打开一个新窗口并在其中插入一些布局。
// function body
const printWin = window.open('');
printWin.document.body.appendChild(el);
printWin.focus();
printWin.print();
printWin.close();
问题是单位打印窗口关闭,应用程序被完全阻止(因为它是同步执行的)。
我试图做
printWin.addEventListener('DOMContentLoaded', () => {
printWin.focus();
printWin.print();
printWin.close();
})
但是,此事件似乎没有被触发。如何在不引起执行阻塞的情况下打印并立即关闭窗口?
答案 0 :(得分:1)
我刚刚尝试了您所说的内容(Firefox 69.0- Ubuntu),并且没有阻止javascript(事件循环):
我使用了正在使用的Web应用,可以通过websocket将数据推送到该应用(已显示)。
被阻止的是浏览器的用户输入,因为Firefox迫使您进入打印对话框(以确认或取消任务)。
但是javascript照常工作。只是您不会收到任何鼠标或键盘事件,因为您暂时与它们断开了连接。