Я использую Microsoft Edge 41.16299.402.0.
Я хотел бы использовать iframe для встраивания BLOB-объекта PDF и использовать contentWindow.print () для непосредственного отображения диалогового окна принтера.
Всеотлично работают в других браузерах, но не работают в Microsoft Edge.
Появилось сообщение об ошибке «Ошибка: неожиданный вызов метода или доступа к свойству».
Кто-нибудь знает, как решить эту проблему?
Ниже мой код:
let loading = document.createElement("div");
loading.id = "printLoading";
loading.style.cssText = 'position: fixed;width: 100%;height: 100%;z-index: 999;background: rgba(6,6,6,0.3);top: 0;left: 0;';
document.body.appendChild(loading);
var iframe = document.getElementById("printIframe");
if (iframe != null) {
document.body.removeChild(iframe);
}
iframe = document.createElement("iframe");
iframe.id = 'printIframe';
iframe.style.display = 'none';
console.log("pdfBlob", pdfBlob)
document.body.appendChild(iframe);
iframe.src = URL.createObjectURL(pdfBlob);
let timeOut = 0;
var inter = window.setInterval(function () {
try {
if (iframe.contentWindow.document.readyState === "complete") {
document.getElementById("printIframe").contentWindow.print();
window.clearInterval(inter);
let loading = document.getElementById("printLoading");
if (loading != null) {
document.body.removeChild(loading);
}
}
} catch (error) {
timeOut += 100;
if(timeOut>5000){
window.clearInterval(inter);
let loading = document.getElementById("printLoading");
if (loading != null) {
document.body.removeChild(loading);
}
console.log(error);
}
}
}, 100);