, AMD ( meh...)
FileSaver.js
requirejs config/main.js:
(function() {
requirejs.config({
paths: {
"jquery": "PATH/jquery.min",
"lib.filesaver" : "PATH/FileSaver",
"shim.blob" : "PATH/Blob"
},
shim: {
"lib.filesaver": {deps: ["shim.blob"]}
}
});
define([
"jquery"
], function(
$
) {
$(document).ready(function() {
});
return {};
});
})();
Blob.js/jquery Filersaver
I also created IEShim for pre IE10
define([], function () {
var IEShims = {
saveAs: function (filename, filecontent, mimetype ) {
var w = window.open();
var doc = w.document;
doc.open( mimetype,'replace');
doc.charset = "utf-8";
doc.write(filecontent);
doc.close();
doc.execCommand("SaveAs", null, filename);
}
};
return IEShims;
});
And finally, when I want to use Fileaver, make it necessary (along with IEShim for bad browsers)
define([
"lib.filesaver",
"IEShims"
],
function (
FileSaver, // it empty, see saveAs global var
IEShims
) {
...
var fileName = "helloworld.txt";
var fileContents = "Me haz file contents, K Thx Bye";
var mimeType = "text/plain";
if(saveAs) {
var blob = new Blob(
[fileContents],
{type: mimeType + ";charset=" + document.characterSet}
);
saveAs(blob, fileName);
} else {
IEShims.saveAs(fileName, fileContents,mimeType );
}
...
};
source
share