Javascript 如何将字符串导出到HTML和Phonegap中的文件
我使用下面的javascript将数据从websql数据库保存到consol.log,但如何将其导出到文件?这是针对Phonegap的,但希望也是针对同一页面的web版本。 我希望有人知道该怎么做。谢谢Javascript 如何将字符串导出到HTML和Phonegap中的文件,javascript,cordova,Javascript,Cordova,我使用下面的javascript将数据从websql数据库保存到consol.log,但如何将其导出到文件?这是针对Phonegap的,但希望也是针对同一页面的web版本。 我希望有人知道该怎么做。谢谢 function dbError(e) { console.log("SQL ERROR"); console.dir(e); } function backup(table) { var def = new $.Deferred
function dbError(e) {
console.log("SQL ERROR");
console.dir(e);
}
function backup(table) {
var def = new $.Deferred();
curatio.webdb.db.readTransaction(function(tx) {
tx.executeSql("select * from "+table, [], function(tx,results) {
var data = convertResults(results);
console.dir(data);
def.resolve(data);
});
}, dbError);
return def;
}
$(document).on("click", "#doBackupBtn", function(e) {
e.preventDefault();
console.log("Begin backup process");
$.when(
backup("allergies")
).then(function(allergies, log) {
console.log("All done");
//Convert to JSON
var data = {allergies:allergies};
var serializedData = JSON.stringify(data);
console.log(serializedData);
(function(console){
console.save = function(data, filename){
if(!data) {
console.error('Console.save: No data')
return;
}
if(!filename) filename = 'console.json'
if(typeof data === "object"){
data = JSON.stringify(data, undefined, 4)
}
var blob = new Blob([data], {type: 'text/json'}),
e = document.createEvent('MouseEvents'),
a = document.createElement('a')
a.download = filename
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
a.dispatchEvent(e)
}
})(console)
});
});
//Generic utility
function convertResults(resultset) {
var results = [];
for(var i=0,len=resultset.rows.length;i<len;i++) {
var row = resultset.rows.item(i);
var result = {};
for(var key in row) {
result[key] = row[key];
}
results.push(result);
}
return results;
}
试试这个:
用法:
试试这个:
用法:
试试这个:
用法:
试试这个:
用法:
嗨,雷库比。在哪里以及如何使用“用法”?抱歉,对javascript来说有点陌生。这取决于你想在哪里下载文件,哪里都有控制台。log?啊。它工作得很好!我将它添加到}控制台之后,我想我必须更改成功:以某种方式包含字符串的数据?因为当前文件包含的所有参数都是Success:是的,第一个参数是filename,第二个参数是fileYAY的内容,如果我将其更改为serializedData,它就会工作!谢谢你的帮助!嗨,雷库比。在哪里以及如何使用“用法”?抱歉,对javascript来说有点陌生。这取决于你想在哪里下载文件,哪里都有控制台。log?啊。它工作得很好!我将它添加到}控制台之后,我想我必须更改成功:以某种方式包含字符串的数据?因为当前文件包含的所有参数都是Success:是的,第一个参数是filename,第二个参数是fileYAY的内容,如果我将其更改为serializedData,它就会工作!谢谢你的帮助!嗨,雷库比。在哪里以及如何使用“用法”?抱歉,对javascript来说有点陌生。这取决于你想在哪里下载文件,哪里都有控制台。log?啊。它工作得很好!我将它添加到}控制台之后,我想我必须更改成功:以某种方式包含字符串的数据?因为当前文件包含的所有参数都是Success:是的,第一个参数是filename,第二个参数是fileYAY的内容,如果我将其更改为serializedData,它就会工作!谢谢你的帮助!嗨,雷库比。在哪里以及如何使用“用法”?抱歉,对javascript来说有点陌生。这取决于你想在哪里下载文件,哪里都有控制台。log?啊。它工作得很好!我将它添加到}控制台之后,我想我必须更改成功:以某种方式包含字符串的数据?因为当前文件包含的所有参数都是Success:是的,第一个参数是filename,第二个参数是fileYAY的内容,如果我将其更改为serializedData,它就会工作!谢谢你的帮助!
function download(filename, content) {
var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content));
pom.setAttribute('download', filename);
pom.click();
}
download("test.txt", "Success :)");