如何将内容保存为文本文件

时间:2013-03-23 00:58:47

标签: javascript file url save bookmarklet

我在https://coderwall.com/p/lhsrcq

中看到了内容可编辑的网址技巧
    data:text/html, <html contenteditable>

它允许您将浏览器用作txt文件,但在保存html页面时内容会丢失。

我创建了一个可以用作书签的字符串,通过创建一个像src一样的iframe来保存你输入的内容

    data: Content-type: application/octet-stream

加上浏览器网址中的contenteditable元素的内容

您可以在http://pastebin.com/4z8tttuA看到我的代码,然后将其复制到您的浏览器网址

我的问题是

  1. 所有空格都变为'',并且回车消失。这是我的内容可编辑元素是div。我用textarea尝试了它也不起作用

  2. 将文件命名为“下载”以外的文件(后来成为下载(1),下载(2)...)

1 个答案:

答案 0 :(得分:2)

我清理并修复了你的内容,在这里:http://pastebin.com/sJXVvRUB

认为它会做你想要的。如果需要,您仍然需要将链接重新设置为按钮。我也只在Chrome中测试过,因此可能需要进行其他一些小修改。

至于你的问题以及我如何解决它们:

  1. 我不确定我是否完全理解问题的“空格”部分,除非您的意思是所有连续的空格都被(错误地)保存为单个空格。实际上,这就是HTML呈现它的方式。我通过将note = note.replace("&nbsp;", "");替换为note = note.replace('&nbsp;', ' ');来解决这个问题。你没有用任何东西替换不间断的空间。对于换行符,我只是在保存之前转义了注释:escape(note)。我还调整了对replace()的调用,使其更简单,更有针对性(至少在Chrome上)。
  2. 为了控制文件名,我将表单+按钮替换为链接,以便我可以使用“下载”属性,在此处记录:https://developer.mozilla.org/en-US/docs/HTML/Element/a#attr-download(目前大多数情况下仅由Chrome支持)。
  3. 希望这有帮助!