使用 window.open 时如何停止浏览器弹出窗口拦截器

How to stop browser popup blocker when using window.open

我正在打印从后端检索到的 html。

 printHtml(htmlTemplate) {
    var printWindow = window.open('', '_blank');
    printWindow.document.write(htmlTemplate);
    setTimeout(function () {
        printWindow.document.close(); // necessary for IE >= 10
        printWindow.focus(); // necessary for IE >= 10*/
        printWindow.print();
        printWindow.close();
    }, 1000);
}

这在所有浏览器中都可以正常工作,唯一我想不通的是如何停止弹出窗口阻止程序。 不能使用 printWindow.location 因为 html 存在于变量中。

遇到同样问题的人,
问题是我在 promise 中调用了这个方法,完成后, window.open 有一个新的 window 实例导致弹出窗口拦截器。 这在我分配时工作正常,

var printWindow = window.open('', '_blank');

在进入 promise 之前添加到全局变量并在方法中使用它。