Показать сообщение отдельно
  #21 (permalink)  
Старый 26.06.2018, 10:01
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

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);
}


Может быть причина из за того что после выполнения скрипта у канваса нет закрывающего тега?
Ответить с цитированием