Я пытаюсь получить изображение с интерактивной карты, используя dataURI. Затем это изображение добавляется к новому макету окна для печати.
Это работает в Firefox и Chrome, но не в IE11 или Edge, которые выдают ошибки. IE: «HierarchyRequestError» Edge: «Такой интерфейс не поддерживается»
Этот вопрос очень похож, но на него нет ответа, и предлагаемые решения касаются к объектам, отличным от данных изображения.
Я подозреваю, что этот метод может работать, но я не могу' не могу понять, как правильно реализовать это для URI.
Текущий код работает в FF и Chrome;
function screen(){
var simg = new Image();
var dataURL = map.getCanvas('#map').toDataURL();
simg.src = dataURL;
var mywindow = window.open('about:blank','Print','height=800,width=900');
var is_chrome = Boolean(mywindow.chrome);
mywindow.document.write('<!DOCTYPE html><head>');
mywindow.document.write('<link rel="stylesheet" href="./css/scr.css" type="text/css" />');
mywindow.document.write('</head><body>');
//add logos and legend here.
mywindow.document.write('</div></body></html>');
mywindow.document.body.appendChild(simg);
if (is_chrome) {
setTimeout(function () {
mywindow.document.close();
mywindow.focus();
mywindow.print();
mywindow.close();
}, 600);
} else {
mywindow.document.close();
mywindow.focus();
mywindow.print();
mywindow.close();
}
return true;
}