<p>html2canvas не работает, если html содержит элемент холста</p>

Созданный на 13 дек. 2017  ·  29Комментарии  ·  Источник: niklasvh/html2canvas

Отчеты об ошибках:

Я использую html2canvas в проекте React. Я обнаружил, что html2canvas не работает, если html содержит элемент холста. Область холста будет пустой.

Характеристики:

это изображение html
image

это преобразование в изображение холста

image

в области холста я использую «электронные диаграммы для реакции», чтобы нарисовать карту радара。 Но когда я нажимаю кнопку «Создать изображения» , загрузка изображения не завершена

  • версия html2canvas, протестированная с помощью: 1.0.0-alpha.4
  • Браузер и версия: Chrome 60.0.3112.7
  • Операционная система: windows

Самый полезный комментарий

Я попытался добавить removeContainer: false, но проблема все еще существует в мобильном Chrome

Все 29 Комментарий

У меня та же проблема.

Не могли бы вы поделиться примером на jsfiddle?

та же проблема. У меня есть графики chartjs на странице, они больше не отображаются. использовался для рендеринга в предыдущей версии

Я создал скрипку, чтобы показать проблему
https://jsfiddle.net/outerbound/v7p71wzr/

Это не работает на Chrome :(, я могу подтвердить, что на сафари он работает :)

проблема заключается в удалении контейнера из DOM перед рендерингом

У меня та же проблема. маркер ...

Возможно, html2canvas не может работать с gridstack.js

Была такая же проблема с использованием chart.js с vue (vue-chart.js), и это происходит только в Chrome

У меня та же проблема, html2canvas не может работать с gridstack.js, когда я использую html2canvans с gridstack, все элементы складываются вверху.
image

@ Nemo0915 Я создаю jsfiddle с помощью gridstack.js, но он работает нормально. Возможно, это не проблема gridstack.js, но я не очень уверен.

та же проблема, Firefox в порядке, но Chorme не может работать

@bigfacewo, спасибо за ответ, это снимок экрана вашего jsfiddle, кнопка тоже расположена вверху, и результат одинаков как в FF, так и в Chrome.
image

@ Nemo0915 Я обнаружил, что версия 0.5.0-beta4 работает нормально, jsfiddle . скриншот:
qq 20171220150328
Версия 1.0.0-alpha4, jsfiddle , не может работать на Chrome, но я не обнаружил проблемы, что элементы были сложены сверху. это снимок экрана Firefox:
qq 20171220150946

Версия Chrome: 63.0.3239.108
Версия Firefox: 57.0.2

вы можете добавить опцию: removeContainer: false, чтобы временно решить эту проблему ....

Спасибо @IxAres , это решает мою проблему.

Я попытался добавить removeContainer: false, но проблема все еще существует в мобильном Chrome

@niklasvh вообще не работает. Я использую версию 1.0.0-rc.5 этого приложения.
Screenshot 2020-02-17 at 10 54 42 AM

эй, какое решение?

2020 проблема все еще здесь.

+1 Я тоже наблюдаю такое поведение.

Проблема все еще существует

Проблема все еще существует с Chart.js и браузером Firefox 76.0 (64-разрядная версия).

Привет, у меня такая же проблема с Mapbox внутри элемента, пожалуйста, помогите здесь.
Я также пробовал removeContainer: false, но у меня это не сработало.

@Rajeshgtstpl У меня была аналогичная проблема с mapbox. Я решил это, установив preserveDrawingBuffer: true в опциях mapbox.

Я не использую Chart.js, но имел ту же проблему с холстами, где я использовал drawImage. Решил проблему, поместив image.crossOrigin = 'anonymous' в элемент изображения перед передачей его в drawImage, например:

image.crossOrigin = 'anonymous'

Надеюсь, это поможет кому-то :)

Привет, ребята, у меня аналогичная проблема с экспортом холста, но со сценой threejs, какие-либо рекомендации? Я пробовал с v1.0.0-rc.7, но он экспортирует все, кроме холста threejs.

РЕДАКТИРОВАТЬ: Я попытался добавить в холст threejs вот так:

image

Но получил эту ошибку:

image

@AchoArnold preserveDrawingBuffer: true работал у меня для Mapbox, спасибо.

Вопрос: заметили ли вы влияние на производительность?

Я не использую Chart.js, но имел ту же проблему с холстами, где я использовал drawImage. Решил проблему, поместив image.crossOrigin = 'anonymous' в элемент изображения перед передачей его в drawImage, например:

image.crossOrigin = 'anonymous'

Надеюсь, это поможет кому-то :)

это спасло мою жизнь спасибо

Была ли эта страница полезной?
0 / 5 - 0 рейтинги