仅显示以下 2 篇带「内容」关键字的文章。 返回词云  或  查看全部文章

web 另类方法实现“另存为”功能

2013-05-31 by Dron

HTML5 的 FileReader 带给我们很强大的文件只读访问能力,可是在 HTML5 新增的 JS 中却没有发现有方便的另存到本地文件的相关 API,以往的办法要么调用浏览器的 save as 命令(兼容程度不详),要么将内容提交到服务器,由服务器附加 content-type: application/octet-stream 头并原文打回来实现。

偶然间,发现 HTML5 的 <a> 标签有了一个新属性,叫 download,取值是一个文件名,当一个带有 download 属性的 <a> 链接被点击时,其形为不再是一个网页跳转,而变成将目标以指定的文件名另存到本地,兼容性还不错的样子。

<a>href 值是可以随便改的,也就是说要另存的文件内容可以通过 JS 的方式轻松生成,对其指定一个 DataURI 就可以决定要保存的文件内容了,配合 Base64,甚至可以产生一个二进制文件!

原理简单,实现无比容易,就不在这儿贴代码了,戳我可以看看 live demo

Ajax 一个 GBK 目标后内容乱码的解决方案

2013-01-10 by Dron

Ajax 请求一个 GBK 的页面时,如果内容出现乱码,说明服务器在响应内容时没有指定 Charset 编码,浏览器对于这样的响应默认以 UTF-8 解码,故出现乱码,通常在服务器端配置个 Header 就可以解决。

如果请求的目标是不可控的(比方说别人的站点),通过 XHR 对象的 overrideMimeType() 也可以指定编码:

xhr.overrideMimeType( "text/html;charset=" + charset );