Je dois prendre une copie d'écran d'un div et ont besoin de l'envoyer au serveur (Java) à store.The code existant dans mon projet d'entreprise utilisé Html2Canvas.js où il devient l'élément (div, corps ...) et en retournant la base64 dataURI, il fonctionne très bien, mais geler l'application dans Chrome. Donc, je suis à la recherche d'une autre solution et trouvé le code ci-dessous de débordement de la pile.Comment obtenir dataURL de Blob ou BlobURL
var data = '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">' +
'<foreignObject width="100%" height="100%">' +
'<div xmlns="http://www.w3.org/1999/xhtml" style="height:200px;width:200px;background-color:red;font-size:40px">' +
'<em></em> l ' +
'<span style="color:white; text-shadow:0 0 2px blue;">' +
'</span>' +
'</div>' +
'</foreignObject>' +
'</svg>';
var DOMURL = window.URL || window.webkitURL || window;
var svg = new Blob([data], {type: 'image/svg+xml;charset=utf-8'});
var url = DOMURL.createObjectURL(svg);
document.getElementById("image1").src=url;
<img id='image1' width="200px" height="200px"/>
Ici url je reçois est blob Url (blob: https% 3A // fiddle.jshell.net/a5b366a2-ff0c-4c7b-9b20-a80395d7f536) que je suis en mesure utiliser comme img src ou si j'ouvre directement l'URL dans un nouvel onglet, il est aussi l'ouverture. est-il de toute façon à obtenir les dataUri base64 comme celui-ci (données: image/png; base64, R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XB/fNwfjZ0frl3/zy7 //// waaaaa) à partir de l'URL de blob ou d'un objet blob?
Ne créez pas une URL d'objet si vous ne l'utilisez pas, ce sont des cauchemars pour la mémoire. De plus, l'idée de l'utilisation de Blob par OP est une mauvaise idée pour svg. – Kaiido
Vous avez raison sur vos deux déclarations. Le premier juste une erreur cependant - j'ai oublié là-bas. La seconde: répondre simplement à la question ... vous êtes gentil de le laisser savoir mieux avec une réponse si gentille :) – thepio