hml5 toDataUrl () ne fonctionne pas sur chrome

Je fais ça:

$('#displayBtn').click(function(){ var canvas = document.getElementById("myCanvas"); var dataUrl = canvas.toDataURL(); document.getElementById("textArea").value = dataUrl; }); 

Cela fonctionne très bien sur Firefox et IE, mais pas de chance avec Chrome. J’ai cherché sur Google et suis revenu avec le problème concernant les fichiers .SVG, mais je n’utilise aucun fichier SVG, mais uniquement les formats PNG et JPG. Voici un violon de mon code: http://jsfiddle.net/ykpCn/2/ Est-ce parce que j’utilise des PNG transparents? Pas sûr de ce que je fais mal. Très nouveau en HTML5, j’espère que ce n’est pas quelque chose de stupide que j’ai négligé.

Le problème est lié à l’access aux ressources d’origine croisée. L’image que vous avez rendue sur le canevas provient d’une origine différente (http://moosepi.com). Vous ne pouvez pas appeler toDataURL () sur des images d’origines différentes.

Si vous lancez vos outils de développement Google Chrome, vous le trouverez dans votre console. “Erreur non capturée: SECURITY_ERR: Exception DOM 18”. C’est le comportement attendu selon les spécifications .

Solution: 1. Hébergez les images à partir de votre serveur (peut-être en utilisant une configuration proxy). 2. Définissez l’atsortingbut CORS sur la ressource. N’oubliez pas que la source doit définir les en-têtes appropriés.

Apparemment, cela ne fonctionne que sur Chrome s’il est hébergé sur un serveur Web? Cela fonctionne bien si je télécharge sur le serveur puis le visualise à partir de là, mais ne fonctionnera pas localement. Ma question est stupide maintenant. Désolé de perdre du temps.