HTML和JavaScript-如何正确保存纯文本
HTML and JavaScript - How to save plain text right
我想保存一个本地生成的文本文件。
这个代码几乎做到了我想要的:
<a download="filename.txt" href="data:text/plain,sometext">Download</a>
sometext
表示该标记属性中的string
(使用javascript插入)。您可以将其想象为用户设置的文本区域的内容。
问题是sometext
不能包含"
或'
,因为否则href属性会认为其内容提前完成,这会导致标记在您单击它时只保存该string
的一部分。
由于sometext
是由用户生成的,它可以包含这些字符,我不想强迫用户不使用这些字符。
有没有其他方法可以使用html/javascript保存文本文件?
我不想将sometext
发送到服务器。(这将解决问题,因为我可以在那里创建一个文件(包括"
和'
)并具有下载链接)
这将取决于如何将此something
添加到href。
首先,单引号并不重要,因为它被双引号"
包裹,所以它会像这样工作:
<a href="data:text/plain,mytext'text">Download</a>
当涉及到双引号时,在HTML上下文中,您必须使用正确的表示法,在本例中为"
。HTML将其理解为双引号:
<a href="data:text/plain,mytext"text">Download</a>
<!-- It will turn into mytext"text -->
但是
既然你说这将是用户的输入,我想你可能是通过Javascript设置href
的,所以我认为这无关紧要,它会是这样的:
(试着键入单引号或双引号…对于JS来说,这无关紧要)
var ChangeHref = function() {
var el = document.getElementById("a1");
el.href = "data:text/plain," + document.getElementById("inp1").value;
}
<input id="inp1" type="text" />
<input type="button" value="change href" onclick="ChangeHref()" />
<br />
<a id="a1" download="filename.txt" href="data:text/plain,test">Download</a>
编写一个简单的javascript来删除中的"and"字符
userText.replace(/''/g, '').replace(/'"/g, '');
/表示它是一个正则表达式,'''和''"表示文字字符'和",结尾的g使它查找所有要替换的字符。
但既然你想保留它,那就这样做:
userText.replace(/''/g, '''''').replace(/'"/g, ''''"');
''是一个字面反斜杠。这样,当您将其添加到文件名中时,它将转义并表示文字"and".
相关文章:
- 如何在文本框中保存文本
- 保存文本框数据并从本地存储返回 - angularJS -
- 动态注入时保存文本区域值的夏季注释问题
- 根据类添加空格以保存文本文件
- ASP.NET 如果文本在“大于”和“小于”符号之间给出,则无法保存文本框
- 使用哈希标记保存文本(Javascript - PHP - MySQL)
- 加载保存文本区域不起作用,如图所示
- 保存文本中光标高亮显示的位置
- 使用编辑区域javascript插件时正在保存文本区域
- 关于在数据库(SQL)中保存文本数据的要求
- 保存文本框值
- PHP保存文本文件,然后在另一个页面上显示它并不是每次都工作
- 通过AJAX提交表单时保存文本框建议/自动完成
- 我可以通过document.execCommand(' save As',…)保存文本吗?我总是返回一些
- HTML5 Javascript.如何保存文本区域输入,然后通过按钮加载它
- 用户选择'其他'后保存文本框数据;下拉框中的选项
- 如何使用JavaScript在HTML中突出显示和保存文本
- 输出XMLSerializer().serializeToString到用户可保存文本窗口的字符串
- 简化jquery自动保存文本
- 使用filesver .js和Blob.js用javascript保存文本文件