1

有没有将数据导出到记事本的链接?我有一些字段,例如姓名、年龄和工作状态

这些是文本和文本区域...

我想将这些数据插入记事本。是否有可用的演示或代码?

4

2 回答 2

1

我不知道有什么方法可以让浏览器打开记事本,但您可以使用 HTML5 功能将文件另存为文本,然后在记事本中自行打开。根据浏览器的不同,您可能需要在用户端触发保存文件。这里有两个参考资料,我将总结一下:

http://thiscouldbebetter.wordpress.com/2012/12/18/loading-editing-and-saving-a-text-file-in-html5-using-javascrip/

http://updates.html5rocks.com/2011/08/Saving-generated-files-on-the-client-side

基本上,您想用您的文本创建并保存一个 blob。它应该看起来像这样:

var arrayOfStuff = [];
arrayOfStuff.push("Name            Age              Working status");
arrayOfStuff.push("-----------------------------------------------");
arrayOfStuff.push(document.getElementById("name").value);
// etc
var blob = new Blob(arrayOfStuff, {type:'text/plain'});

// (the rest is copied directly from the wordpress link)
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";
if (window.webkitURL != null)
{
    // Chrome allows the link to be clicked programmatically.
    downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
    downloadLink.click();
}
else
{
    // Firefox requires the user to actually click the link.
    downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
    document.body.appendChild(downloadLink);
}

如果记事本没什么大不了的,您还应该能够在 iframe 中以 .txt 格式打开此 blob,然后右键单击并另存为,如果您愿意的话。

编辑

好吧,这对我来说实际上是新玩的,所以我的一些旧信息不太正确。这是工作小提琴中的javascript:

var arrayOfStuff = [];
arrayOfStuff.push(document.getElementById("name").value + "\n");
arrayOfStuff.push(document.getElementById("email").value);
arrayOfStuff.push("\n");
arrayOfStuff.push(document.getElementById("phone").value);
arrayOfStuff.push("\n");
arrayOfStuff.push(document.getElementById("comments").value);
arrayOfStuff.push("\n");
alert(arrayOfStuff);

var blob = new Blob(arrayOfStuff, {type:'text/plain'});

var link = document.getElementById("downloadLink");
link.download = "details.txt";
link.href = window.URL.createObjectURL(blob);

小提琴位于http://jsfiddle.net/xHH46/2/

有几个教训:

  1. 如果您使用的是 firefox,则可以选择在记事本中立即打开 .txt。但是,记事本不注意换行符,无论它们是 \n 还是 \n\r,附加到直接字符串或单独添加,所以我建议改用写字板。或者,您可以保存文件。
  2. 更重要的是,要意识到您显示的链接是基于创建 blob 时文本中的任何值。如果您没有默认值,您将得到一个空文件,因为所有字段都是空的。wordpress 解决方案解决了这个问题(并在过去一周内讨论了使用它),但修复很丑陋。基本上,您必须单击一个按钮,然后该按钮会显示一个链接,该链接将为您提供好文件。
于 2013-06-25T15:21:18.863 回答
0

您将无法使用纯 javascript 执行此操作。您需要生成文件服务器端并将其发送到客户端。

于 2013-06-25T15:02:44.403 回答