【发布时间】:2021-09-08 01:09:27
【问题描述】:
我想在使用此处提供的 FileSaver 工具保存时指定我的 .txt 文件名:
https://github.com/eligrey/FileSaver.js/
据我在网上挖掘,我发现默认情况下没有选项可以将其保存在指定的文件名下,就像这里指出的那样:
Is there any way to specify a suggested filename when using data: URI?
Save file Javascript with file name
Can't specific file name with FileSaver.js
没有可靠的方法来做到这一点。
但是我发现了一些让我完全满意的东西。该页面名为:FileSaver.js demo
https://eligrey.com/demos/FileSaver.js/
其中包括使用指定文件名保存文件的几个选项,以及 .txt 文件。
这意味着,显然存在该选项,因为他们已经使用它进行了管理。
在我检查了他们的网站后,我尝试复制他们使用的 JavaScript 代码。我的一段代码现在看起来像这样:
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/eligrey/FileSaver.js/c3e4a45021f205a790a2699f4af7a5b85fb63e09/demo/demo.css"/>
<script src="../js/FileSaver.js"></script>
<script async="" src="https://cdn.rawgit.com/eligrey/Blob.js/0cef2746414269b16834878a8abc52eb9d53e6bd/Blob.js"/>
<script async="" src="https://cdn.rawgit.com/eligrey/canvas-toBlob.js/f1a01896135ab378aa5c0118eadd81da55e698d8/canvas-toBlob.js"/>
<script async="" src="https://cdn.rawgit.com/eligrey/FileSaver.js/5ed507ef8aa53d8ecfea96d96bc7214cd2476fd2/FileSaver.min.js"/>
<script async="" src="https://cdn.rawgit.com/eligrey/FileSaver.js/5ed507ef8aa53d8ecfea96d96bc7214cd2476fd2/demo/demo.min.js"/>
<textarea class="input" id="text" placeholder="Once upon a time..."/></textarea>
<form id="text-options">
<label>Filename: <input type="text" class="filename" id="text-filename" placeholder="a plain document"/>.txt</label>
<input type="submit" value="Save"/>
</form>
但不幸的是,它没有按预期工作。
当我点击“保存”按钮时,它只会刷新页面,而不是使用 <textarea> 内容保存相关文件。
有什么办法可以在某个时候修复它吗?
【问题讨论】:
-
执行它的代码在里面:cdn.rawgit.com/eligrey/FileSaver.js/… - 基本上是针对一堆浏览器的一系列方法。
-
这个文件我已经附上了,效果是一样的。
-
那么,您真的只是在说您不知道如何使用表单中的按钮吗?您选择的示例使用触发表单提交的提交按钮(一种特殊类型的按钮)。当您提交表单时,会生成一个事件。他们的代码在使用输入的文本和文件名执行某些操作之前处理该事件并阻止默认行为。您应该使用不同的按钮。即 - 您还必须将事件附加到新按钮。他们在所有示例的文档中附加了一个表单提交处理程序,因为它保存了代码。
-
这对我来说听起来太复杂了。我打算从他们那里复制代码并尝试在我的示例中实现它。我不明白为什么它不起作用,因为一切都大致相同。
-
这是因为点击保存按钮提交表单。提交表单将数据发送到指定页面(如果有)或重新加载当前页面。如果您愿意,他们会将提交按钮用作“作弊”的一种方式。它们不是附加到所有的 SAVE 按钮,而是在提交表单时进行处理。我给你举个简单的例子。由您来收集数据并使用 fileSaver.min.js 代码生成下载(您会没事的)。
标签: javascript txt