JavaScript 直接操作本地文件的实现代码

 更新时间:2009年12月01日 23:23:15   作者:  
Chrome、IE和Firefox都纷纷在新版中增强了JavaScript引擎的执行效率,随着JavaScript效率在各大浏览器的显著提高,JavaScript可以做越来越多的事,本地文件API的引入将让很多有趣的功能成为现实。
日前,Mozilla向W3C提交了一个草案,旨在推出一个JavaScript API,让JavaScript 脚本直接操作本地文件,Firefox的最新浏览器版本中已经对该API提供了大量的支持,不过出于安全考虑,该API将只对本地文件提供有限的访问。
该API引入了一个FileReader 对象,可以异步加载本地文件系统中的文件,并允许开发者为诸如加载失败,进度,加载完成等事件分配回调函数,它提供的方法可以从本地文件中读取文本或二进制数据,并通过一个 abort 方法随时打断操作。

  FileReader对象使客户端的文件访问成为现实,用户不必再象以前那样首先将文件上传到服务器才能处理,事实上,IE 和 Firefox 已经拥有一些非标准的方法访问本地文件,但这些方法并非标准 JavaScript 行为。

  FileReader对象并不需要特别的权限,但出于显然的安全考虑,直接使用文件路径进行访问是不允许的,必须结合常规的 HTML file 对象,用户点击浏览之后,选择本地文件,JavaScript 再通过 DOM 引用该文件并进行操作,这个机制使得该 API 相对安全一些,因为任何本地文件的获取都需要用户的人工参与。

  以下例子使用该 API 打开一个本地文件并将文件内容显示在一个 div 容器中,我们甚至可以在 div 上加上 contentEditable 属性,用户可以直接编辑文件的内容,不过,该 API 并没有提供将文件内容写回本地文件的方法,因此你编辑的内容无法保存。

尽管在JavaScript中增加API并非多么重大的技术革命,但它将拓展 Web 应用的视野,让 Web 平台实现越来越多的功能。

相关文章

  • JavaScript WebAPI、DOM、事件和操作元素实例详解

    JavaScript WebAPI、DOM、事件和操作元素实例详解

    这篇文章主要给大家介绍了关于JavaScript WebAPI、DOM、事件和操作元素的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友可以参考下
    2021-06-06
  • JS模拟的Map类实现方法

    JS模拟的Map类实现方法

    这篇文章主要介绍了JS模拟的Map类实现方法,可实现模拟java中map属性按照键值对保存的功能,提供了采用数组和json两种实现方式,需要的朋友可以参考下
    2016-06-06
  • 微信小程序自定义tabbar栏实现过程讲解

    微信小程序自定义tabbar栏实现过程讲解

    tabBar相对而言用的还是比较多的,但是用起来并没有难,下面这篇文章主要给大家介绍了关于微信小程序全局配置之tabBar的相关资料,文中通过图文以及示例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • JS获取鼠标坐标、获取鼠标像素点示例

    JS获取鼠标坐标、获取鼠标像素点示例

    运行代码之后随意移动鼠标的位置,可适时显现鼠标的坐标点,不占用系统资源
    2014-03-03
  • javascript jq 弹出层实例

    javascript jq 弹出层实例

    javascript jq 弹出提示效果实现的方法有很多,可能会在某些地方看到过,下面为大家演示个示例介绍下如何实现jq 弹出层,感兴趣的朋友可以参考下
    2013-08-08
  • 微信小程序获取用户openid的方法详解

    微信小程序获取用户openid的方法详解

    小程序的openid相当重要,它是用户的唯一标识id,牵扯的支付,登录,授权等,下面这篇文章主要给大家介绍了关于微信小程序获取用户openid的相关资料,需要的朋友可以参考下
    2022-04-04
  • UI Events 用户界面事件

    UI Events 用户界面事件

    UI即User Interface(用户界面)的简称。UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计
    2012-06-06
  • js鼠标滑过弹出层的定位IE6bug解决办法

    js鼠标滑过弹出层的定位IE6bug解决办法

    大家在写div+css的时候经常会用到弹出层,由于IE6的bug,所以当使用多个标签重复写弹出层的时候会遇到后面的层压在了弹出层的上面;用Jquery给弹出层的z轴依次增加高度可解决.代码很简单,效果很显著,需要了解的朋友可以参考下
    2012-12-12
  • 拥有一个属于自己的javascript表单验证插件

    拥有一个属于自己的javascript表单验证插件

    这篇文章主要帮助大家拥有一个属于自己的javascript表单验证插件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 自己使用js/jquery写的一个定制对话框控件

    自己使用js/jquery写的一个定制对话框控件

    自己做一个通用的控件,虽然不是绝对通用啦,但在我这个项目里还是可以随意调用的,思想的话也可以借鉴到别的项目中
    2014-05-05

最新评论