我正在开发一个自定义应用程序" ServiceNow"这需要Javascript和HTML编码。所以,我有一个领域说,"描述"在我的表格上。如何将此字段的值保存到桌面上的word文档?
答案 0 :(得分:1)
虽然JavaScript无法创建供您自行下载的文件,但ServiceNow确实可以为您创建一个文件。如果不使用MID服务器和一些自定义Java代码,则无法创建Word文档,但如果有任何文件类型,则可以使用导出URL创建Excel文件。为了测试这一点,我在问题表上运行赫尔辛基的开发人员实例中创建了一个UI Action。我创建了一个列表视图,其中只包含我想要保存的字段,然后在UI操作中使用以下代码:
function startDownload() {
window.open("https://dev13274.service-now.com/problem_list.do?EXCEL&sysparm_query=sys_id%3D" +
g_form.getUniqueValue() + "&sysparm_first_row=1&sysparm_view=download");
}
使用UI操作时,它会打开一个新选项卡,该选项卡几乎立即关闭,并提示用户保存或打开包含该单个字段内容的Excel文件。
如果您想了解有关从ServiceNow导出数据的不同方法的更多信息,请查看subject上的wiki页面。
答案 1 :(得分:1)
您可以使用HTML5 FileSystem API来实现
window.requestFileSystem(window.PERSISTENT, 1024*1024, function (fs) {
fs.root.getFile('file.txt', {create: true}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
var blob = new Blob([description.value], {type: 'text/plain'});
fileWriter.write(blob);
});
});
});
仅供参考,chrome支持webkitRequestFileSystem
。
或者,使用Blob并生成下载链接
var text = document.getElementById("description").value;
var blob = new Blob([text], {type:'text/plain'});
var fileName = "test.txt";
var downloadLink = document.createElement("a");
downloadLink.download = fileName;
downloadLink.href = window.webkitURL.createObjectURL(textFile);
downloadLink.click();
答案 2 :(得分:0)
Javascript可以保护客户端免受恶意服务器的攻击,这些恶意服因此,您无法使用javascript读取或写入客户端计算机上的文件,除非您使用某种文件上传控件,这意味着要求用户的许可。