Yes you can do it using BLOB.
The script will attach content to a link that when clicked will offer to download a file (a file that never existed).
More info on:
This is how I did it (there are many other ways to do it):
- GM (greasemonkey) script generates the content of the file
- GM passes it to the web page using sessionStorage.variable="...content.."
- script within page makes link visible and attach the content of the variable to the BLOB object.
You many need to stringify / parse the object.
- contacts=JSON.parse(sessionStorage.contacts)
- sessionStorage.contacts=JSON.stringify(contacts);
I modified slightly the original script to make it generic for multiple mime types.
Here is mine.
// Stuff to create the BLOB object --- ANY TYPE ---
var textFile = null,
//-- Function
makeTextFile = function (text,textType) {
// textType can be 'text/html' 'text/vcard' 'text/txt' ...
var data = new Blob([text], {type: textType });
// If we are replacing a previously generated file we need to
// manually revoke the object URL to avoid memory leaks.
if (textFile !== null) {
window.URL.revokeObjectURL(textFile);
}
textFile = window.URL.createObjectURL(data);
return textFile;
};
Hope it helps.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…