Avertissement à tous les fans de BlobBuilder : à bientôt !
BlobBuilder
est une API pratique permettant de créer des objets Blob (ou fichiers) en JavaScript. Il existe depuis Chrome 8, FF 6 et IE 10, mais il n'a jamais été expédié dans Safari et ne le sera probablement jamais. Les modifications récentes apportées aux spécifications de l'API File incluent un nouveau constructeur pour Blob
, ce qui rend BlobBuilder
non pertinent. En fait, les créatures de Safari l'ont déjà désactivée, et Chrome vous avertira très prochainement dans la console.
À des fins de comparaison, vous trouverez ci-dessous le même code utilisant le BlobBuilder
obsolète et le nouveau constructeur Blob
. L'extrait de code crée une feuille de style et l'ajoute au DOM.
BlobBuilder()
:
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||
window.MozBlobBuilder || window.MSBlobBuilder;
window.URL = window.URL || window.webkitURL;
var bb = new BlobBuilder();
bb.append('body { color: red; }');
var blob = bb.getBlob('text/css');
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);
Blob()
:
window.URL = window.URL || window.webkitURL;
var blob = new Blob(['body { color: red; }'], {type: 'text/css'});
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);
Pratique ! Ainsi, au lieu d'ajouter l'élément à un élément BlobBuilder
, nous pouvons simplement créer le Blob
à partir d'un tableau de parties de données. Les parties de données peuvent être de différents types (DOMString
, ArrayBuffer
, Blob
) et dans n'importe quel ordre. Exemple :
var blob = new Blob(['1234567890', blob, arrayBuffer]);
Notez également que le deuxième paramètre d'objet est facultatif. Pour en savoir plus sur ces modifications, consultez la documentation duMDN sur les objets Blob.