将字段值保存到桌面上的文件

时间:2016-05-18 20:17:12

标签: javascript html servicenow

我正在开发一个自定义应用程序" ServiceNow"这需要Javascript和HTML编码。所以,我有一个领域说,"描述"在我的表格上。如何将此字段的值保存到桌面上的word文档?

3 个答案:

答案 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读取或写入客户端计算机上的文件,除非您使用某种文件上传控件,这意味着要求用户的许可。