Да, вы можете сделать это с помощью BLOB.
Сценарий прикрепит содержимое к ссылке, которая при нажатии предложит загрузить файл (файл, который никогда не существовал).
Подробнее о:
Вот как я это сделал (есть много других способов сделать это):
- Сценарий GM (greasemonkey) генерирует содержимое файла
- GM передает его на веб-страницу, используя sessionStorage.variable = "... content .."
- на странице делает ссылку видимой и присоединяет содержимое переменной к объекту BLOB.
Вам нужно много строк / разобрать объект.
- contacts = JSON.parse (sessionStorage.contacts)
- sessionStorage.contacts = JSON.stringify (контакты);
Я немного изменил оригинальный скрипт, чтобы сделать его универсальным для нескольких типов пантомимы.
Вот мой.
// 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;
};
Надеюсь, это поможет.