Убедитесь, что вы тестируете последнюю версию html2canvas .
Старые версии не поддерживаются, и проблемы, о которых сообщалось, будут закрыты.
У меня есть страница с несколькими div. Каждый из этих div имеет несколько элементов таблицы реакции . Я хочу сделать снимок экрана каждого div, а затем создать zip-файл и загрузить их все сразу (как своего рода слайд-колода псевдо PowerPoint). Это отлично работает на Mac, однако, когда я использую Google Chrome в Windows, кажется, что div с несколькими таблицами реагирования не завершает рендеринг, когда делается снимок экрана. Включив ведение журнала, я подтвердил, что рендеринг завершается через ~ 1000 мсек, но canvas
, возвращаемое html2canvas, выглядит так, как если бы рендеринг не завершился. Реагирующие таблицы отображаются, но остальной текст на странице несколько прозрачен, как если бы он был загружен наполовину.
У меня еще нет репро jsfiddle, но я буду работать над этим, чтобы добавить его сюда.
Мне удалось заставить это работать, хотя это не оптимально.
html2canvas(div, {
letterRendering: true,
onclone: (doc) => {
// onclone logic to resize div
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
}, 400)
})
}
}).then((obj) => {
let img = obj.toDataURL()
// save image to zip file
})
Я пришел к таймауту 400 мс методом проб и ошибок. Что-то меньшее, и я заметил, что div не полностью отображается, когда html2canvas делает снимок экрана.
Я согласен, у меня была очень похожая проблема, когда изображения, созданные Html2Canvas, обрезались. Это происходило только в производственных сборках. В среде разработки все работало нормально. Обход выше решает мою проблему. Я согласен с тем, что это не идеально, и для этого необходимо правильное исправление, но на данный момент это решает мою проблему. Спасибо @ tjchambers32 за этот
Я также столкнулся с этой проблемой, и с нашей стороны это вызвало довольно серьезную ошибку. Хотелось бы починить!
Самый полезный комментарий
Я также столкнулся с этой проблемой, и с нашей стороны это вызвало довольно серьезную ошибку. Хотелось бы починить!