<p>html2canvas no funciona cuando el html contiene un elemento de lienzo</p>

Creado en 13 dic. 2017  ·  29Comentarios  ·  Fuente: niklasvh/html2canvas

Informes de errores:

Estoy usando html2canvas en un proyecto de reacción. Descubrí que html2canvas no funciona cuando el html contiene un elemento de lienzo. El área del lienzo se mostrará vacía.

Especificaciones:

esta es la imagen html
image

esta es la imagen convertida a lienzo

image

en el área del lienzo, uso 'echarts-for-react' para dibujar un mapa de radar, pero cuando hago clic en el botón Generar imágenes, la imagen de descarga no está completa

  • html2canvas versión probada con: 1.0.0-alpha.4
  • Navegador y versión: Chrome 60.0.3112.7
  • Sistema operativo: windows
Bug

Comentario más útil

Intenté agregar removeContainer: false, pero el problema aún existe en Chrome móvil

Todos 29 comentarios

Tengo el mismo problema.

¿Podría compartir un ejemplo sobre jsfiddle?

el mismo problema. Tengo gráficos de chartjs en la página, ya no se muestran. utilizado para renderizar en la versión anterior

He creado un violín para mostrar el problema.
https://jsfiddle.net/outerbound/v7p71wzr/

Esto no funciona en Chrome :(, puedo confirmar en safari que funciona :)

El problema está en eliminar el formulario de contenedor DOM antes de renderizar

Tengo el mismo problema. marcador...

Quizás html2canvas no pueda funcionar con gridstack.js

Tuve el mismo problema al usar chart.js con vue (vue-chart.js) y solo sucede en Chrome

Tengo el mismo problema, html2canvas no puede funcionar con gridstack.js, cuando uso html2canvans con gridstack, todos los elementos se apilan en la parte superior.
image

@ Nemo0915 Construí un

mismo problema, Firefox está bien pero Chorme no puede funcionar

@bigfacewo gracias por su respuesta, es la captura de pantalla de su jsfiddle, el botón también se ha apilado en la parte superior y el resultado es el mismo ya sea en FF o Chrome.
image

@ Nemo0915 Encontré que la versión 0.5.0-beta4 funciona normalmente, jsfiddle . la captura de pantalla es:
qq 20171220150328
La versión 1.0.0-alpha4, jsfiddle , no puede funcionar en Chrome, pero no encontré el problema de que los elementos estaban apilados en la parte superior. esta es la captura de pantalla en Firefox:
qq 20171220150946

Versión de Chrome: 63.0.3239.108
Versión de Firefox: 57.0.2

puede agregar la opción: removeContainer: false para solucionar este problema temporalmente ...

Gracias @IxAres , resuelve mi problema.

Intenté agregar removeContainer: false, pero el problema aún existe en Chrome móvil

@niklasvh no funciona en absoluto. Estoy usando la versión 1.0.0-rc.5 de esta aplicación.
Screenshot 2020-02-17 at 10 54 42 AM

hey que solucion

2020 el problema sigue aquí.

+1 También estoy viendo este comportamiento.

El problema aún existe

El problema persiste con el navegador Chart.js y Firefox 76.0 (64 bits)

Hola, tengo el mismo problema con Mapbox dentro del elemento, ¿pueden ayudarme aquí?
También probé removeContainer: false pero no funcionó para mí.

@Rajeshgtstpl Tuve un problema similar con mapbox. Lo resolví configurando preserveDrawingBuffer: true en las opciones de mapbox.

No estoy usando Chart.js, pero tuve el mismo problema con los lienzos donde usé drawImage. Resolvió el problema colocando image.crossOrigin = 'anonymous' en el elemento de imagen antes de pasarlo a drawImage, así:

image.crossOrigin = 'anonymous'

Espero que pueda ayudar a alguien :)

Hola chicos, estoy teniendo un problema de exportación de lienzo similar pero con una escena de threejs, ¿alguna recomendación? Lo he intentado con v1.0.0-rc.7 pero exporta todo menos el lienzo threejs.

EDITAR: Intenté agregar el lienzo de threejs de esta manera:

image

Pero tengo este error:

image

@AchoArnold preserveDrawingBuffer: true funcionó para mí para Mapbox, gracias.

Pregunta: ¿ha notado un impacto en el rendimiento?

No estoy usando Chart.js, pero tuve el mismo problema con los lienzos donde usé drawImage. Resolvió el problema colocando image.crossOrigin = 'anonymous' en el elemento de imagen antes de pasarlo a drawImage, así:

image.crossOrigin = 'anonymous'

Espero que pueda ayudar a alguien :)

me salvó la vida gracias

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

ABHIKSINGHH picture ABHIKSINGHH  ·  3Comentarios

Josh10101010 picture Josh10101010  ·  3Comentarios

yasergh picture yasergh  ·  5Comentarios

bishwapoudel picture bishwapoudel  ·  4Comentarios

kunal886496 picture kunal886496  ·  3Comentarios