Rise, картинок нет - у меня канвас перед кнопкой скачать, из него нужно сделать картинку (в смысле скачать его как картинку).
j0hnik, в фоксе тоже. При этом контекстным меню браузера скачивается как надо.
Я вот начал console.log расставлять и сразу заметил одну странность.
Ставлю так:
let canvas = document.querySelector('.editor canvas');
console.log(canvas);
в консоле пусто. (??)
Делаю так:
let canvas = event.target.parentNode.parentNode.querySelector('canvas');
console.log(canvas);
В консоль выводит:
<canvas width="1081" height="700">
Смотрю HTML в вкладке Elements, там
<canvas width="1081" height="700"> (без закрывающего тега), вместо изначального:
<canvas></canvas>
Размеры канваса у меня задаются через функцию и зависят от размера окна:
function risunokRoof() {
let widthWindow = document.documentElement.clientWidth; //Ширина окна браузера
const canvasRoof = document.querySelector('canvas');
let ctx = canvasRoof.getContext('2d');
canvasRoof.width = widthWindow - 285;
canvasRoof.height = 700;
Высоту к размерам окна не привязывал, она даёт NULL. Наверно из за того что у body прописан
overflow-y: hidden;, а у родительского для канваса divа заданы стили:
.editor {
position: fixed;
margin-left: 280px;
height: 100vh;
width: calc(100% - 300px);
}
Может быть причина из за того что после выполнения скрипта у канваса нет закрывающего тега?