<p>html2canvas ne fonctionne pas lorsque le html contient un élément canvas</p>

Créé le 13 déc. 2017  ·  29Commentaires  ·  Source: niklasvh/html2canvas

Rapports de bogue:

J'utilise html2canvas dans un projet react. J'ai trouvé que html2canvas ne fonctionne pas lorsque le html contient un élément canvas. La zone de canevas sera vide.

Caractéristiques:

c'est l'image html
image

c'est la conversion en image de toile

image

dans la zone de canevas, j'utilise 'echarts-for-react' pour dessiner une carte radar Mais quand je clique sur le bouton Générer des images , l'image de téléchargement n'est pas complète

  • version html2canvas testée avec: 1.0.0-alpha.4
  • Navigateur et version: Chrome 60.0.3112.7
  • Système d'exploitation: windows
Bug

Commentaire le plus utile

J'ai essayé d'ajouter removeContainer: false, mais le problème existe toujours sur Chrome mobile

Tous les 29 commentaires

J'ai le même problème.

Pourriez-vous partager un exemple sur jsfiddle?

même problème. J'ai des graphiques chartjs sur la page, ils ne sont plus rendus. utilisé pour le rendu dans la version précédente

J'ai créé un violon pour montrer le problème
https://jsfiddle.net/outerbound/v7p71wzr/

Cela ne fonctionne pas sur chrome :(, je peux confirmer sur safari que cela fonctionne :)

le problème est de supprimer le formulaire DOM du conteneur avant le rendu

J'ai le même problème. marqueur...

Peut-être que html2canvas ne peut pas fonctionner avec gridstack.js

J'ai eu le même problème avec l'utilisation de chart.js avec vue (vue-chart.js) et cela ne se produit que dans Chrome

J'ai le même problème, html2canvas ne peut pas fonctionner avec gridstack.js, lorsque j'utilise html2canvans avec gridstack, tous les éléments sont empilés en haut.
image

@ Nemo0915 Je construis un jsfiddle avec gridstack.js, mais ça marche bien. Alors peut-être que ce n'est pas le problème de gridstack.js, mais je ne suis pas très sûr.

même problème, Firefox est ok mais Chorme ne peut pas fonctionner

@bigfacewo merci pour votre réponse, c'est la capture d'écran de votre jsfiddle, le bouton a également été empilé vers le haut, et le résultat est le même que ce soit dans FF ou Chrome.
image

@ Nemo0915 J'ai trouvé que la version 0.5.0-beta4 fonctionnait normalement, jsfiddle . la capture d'écran est:
qq 20171220150328
La version 1.0.0-alpha4, jsfiddle , ne peut pas fonctionner sur chrome, mais je n'ai pas trouvé le problème que les éléments étaient empilés sur le dessus. voici la capture d'écran sur Firefox:
qq 20171220150946

Version Chrome: 63.0.3239.108
Version de Firefox: 57.0.2

vous pouvez ajouter l'option: removeContainer: false pour résoudre ce problème temporairement ....

Merci @IxAres , cela résout mon problème.

J'ai essayé d'ajouter removeContainer: false, mais le problème existe toujours sur Chrome mobile

@niklasvh ça ne marche pas du tout. J'utilise la version 1.0.0-rc.5 de cette application.
Screenshot 2020-02-17 at 10 54 42 AM

hé, quelle solution?

2020, le problème est toujours là.

+1 Je constate également ce comportement.

Le problème existe toujours

Le problème existe toujours avec le navigateur Chart.js et Firefox 76.0 (64 bits)

Hé là, je reçois le même problème avec Mapbox à l'intérieur de l'élément pouvez-vous s'il vous plaît aider ici.
J'ai également essayé removeContainer: false mais cela n'a pas fonctionné pour moi.

@Rajeshgtstpl J'ai eu un problème similaire avec mapbox. Je l'ai résolu en définissant preserveDrawingBuffer: true dans les options de la mapbox.

Je n'utilise pas Chart.js, mais j'ai eu le même problème avec les toiles où j'ai utilisé drawImage. Résolution du problème en plaçant image.crossOrigin = 'anonymous' sur l'élément image avant de le transmettre à drawImage, comme ceci:

image.crossOrigin = 'anonymous'

J'espère que cela peut aider quelqu'un :)

Salut les gars, j'ai un problème d'exportation de canevas similaire, mais avec une scène threejs, des recommandations? J'ai essayé avec le v1.0.0-rc.7 mais il exporte tout sauf le canevas threejs.

EDIT: J'ai essayé d'ajouter dans le canevas threejs comme ceci:

image

Mais j'ai cette erreur:

image

@AchoArnold preserveDrawingBuffer: true travaillé pour moi pour Mapbox, merci.

Question: avez-vous remarqué un impact sur les performances?

Je n'utilise pas Chart.js, mais j'ai eu le même problème avec les toiles où j'ai utilisé drawImage. Résolution du problème en plaçant image.crossOrigin = 'anonymous' sur l'élément image avant de le transmettre à drawImage, comme ceci:

image.crossOrigin = 'anonymous'

J'espère que cela peut aider quelqu'un :)

ça m'a sauvé la vie grâce

Cette page vous a été utile?
0 / 5 - 0 notes