2013-03-23 49 views
2

我看到https://coderwall.com/p/lhsrcq如何保存<HTML CONTENTEDITABLE>内容为文本文件

data:text/html, <html contenteditable> 

内容编辑网址招它可以让你使用浏览器作为一个txt文件,但是当你保存HTML页面内容丢失。

我做了可以作为一个书签,可以让您保存你输入的内容通过类似

data: Content-type: application/octet-stream 

创建与SRC的iframe加上CONTENTEDITABLE元素在浏览器的URL内容的字符串

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

我的问题是

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

  2. 名不是 '下载' 等文件的东西(后来成为下载(1),下载(2)...)

+0

@ChristianStrempfer感谢您的纠正。@ billybradley编辑时使用堆栈片段 – igaurav 2014-11-25 17:13:09

回答

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)。

希望这会有所帮助!

+0

您真是太棒了谢谢! – okwme 2013-03-23 19:31:48

+0

谢谢你。我们可以在HREF属性中传递的数据是否有限制? – iAnuj 2013-07-02 09:16:58

+0

@iAnuj,你的意思是数据量或类型?它看起来像你也可以传递二进制数据,但我不确定是否有一个大小/长度的限制,如果有,它会是浏览器还是机器相关。实验! – Noyo 2013-07-04 08:10:12

相关问题