阅读更多

16顶
6踩

Web前端

翻译新闻 新 API 寻求让 JavaScript 操作本地文件

2009-11-27 10:13 by 副主编 just_cool 评论(21) 有8798人浏览

日前,Mozilla 的 Arun Ranganathan 向 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 引擎的效率在各大浏览器的显著提高,JavaScript 可以做越来越多的事,本地文件 API 的引入将让很多有趣的功能成为现实。尽管该 API 并非多么重大的技术革命,但它将拓展 Web 应用的视野,让 Web 平台实现越来越多的功能。

 

翻译来自:COMSHARP CMS 企业网站内容管理系统

 

本文来源:http://arstechnica.com/open-source/news/2009/11/w3c-publishes-draft-of-new-file-api-spec.ars

 

来自: comsharp
16
6
评论 共 21 条 请登录后发表评论
1 楼 haidii 2009-11-27 10:36
我靠!
一篇文章,空行比文字多好几倍!
  

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • C++程序调用SetWindowsHookEx全局拦截键盘按键消息和窗口消息的Hook实例分享

    本文分享调用SetWindowsHookEx全局拦截键盘按键消息和窗口消息的两个Hook实例。

  • VC6鼠标低级钩子函数LowLevelMouseProc在应用程序中使用

    鼠标低级钩子函数LowLevelMouseProc在MFC应用程序中使用,没有使用DLL库; 注意在stdafx.h头文件中添加#define _WIN32_WINNT 0x0500,否则编译错误; 这个程序是捕获鼠标移动、单击事件,对照程序很容易理解。

  • VC6 鼠标钩子 最简单样例

    Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它能够截获并处理送给其它应用程序的消息,来完毕普通应用程序难以实现的功能。钩子能够监视系统或进程中的各种事件消息,截获发往目标窗体的消息并进行处理。这样,我们就能够在系统中安装自己定义的钩子,监视系统中特定事件的发生,完毕特定的功能,比方截获键盘、鼠标的...

  • SetWindowsHookEx函数详解

    1、函数功能 该函数将一个应用程序定义的挂钩处理过程安装到挂钩链中去,您可以通过安装挂钩处理过程来对系统的某些类型事件进行监控,这些事件与某个特定的线程或系统中的所有事件相关。 所以,为什么要用钩子? 窗口被强行至于底部或是最小化情况下是得不到焦点的(无法得到鼠标相关事件)。为了响应用户的消息,只能用钩子的方式,获取鼠标消息。 2、函数原型 函数原型: HHOOK SetWindowsHookEx( int idHook, HOOKPROC lpfn,HINSTANCEhMod,DWORD dwTh

  • 【C#】解决MouseHook捕获鼠标动作,在有些电脑上SetWindowsHookEx失败返回0的问题

    最近在debug鼠标位置捕获的功能时发现在其中的一台开发电脑上,SetWindowsHookEx一直返回0,导致Hook设置失败,有时候调成Release模式又是正常的。代码如下: hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProcedure,Marshal.GetHINSTANCE(System.Reflection.Assem...

  • 关于鼠标钩子使用入门

    <br />1.     MOUSEHOOKSTRUCT 鼠标钩子结构体<br />  当WH_MOUSE钩子处理的鼠标事件时,该结构包含鼠标信息。 <br />  typedef struct { <br />  POINT pt; <br />  HWND hwnd; <br />  UINT wHitTestCode; <br />  ULONG_PTR dwExtraInfo; <br />  } MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT; <br />参数: <br /

  • 调试输出信息OutPutDebugString

    OutPutDebugString(TEXT(&quot;在调试器里输出的类容&quot;)); #define MAXDUGBUFF 20#define OutError(ErrorEvent) {  \   wchar_t DebugChar[MAXDUGBUFF]; \    ZeroMemory(DebugChar, MAXDUGBUFF * sizeof(wchar_t)); ...

  • 《Windows核心编程》之“Windows挂钩”(二)

    本文接上篇,继续探讨“Windows挂钩”,包括:跨进程的“窗口子类化”,使用Windows Hook注入DLL,跨进程窗口通讯,进程间共享内存和示例程序调试总结。

  • Pywinauto-0.6.8 win32_hooks具体功能模块 电脑端软件GUI鼠标键盘Python自动化办公、测试、重复性工作制定库

    纯 PYthon 中的 Windows 全局 hooks。该实现使用由标准 python 模块 ctypes 提供的外部函数接口 (FFI),并受到 pyHook、pyhooked 和其他类似模块的启发(代码从头开始重写)。它往往是 pyHook 的超集,但仅在纯 python 中,因此不需要编译。有关 Windows hooks 的更详细文档,请参阅 MSDN:https://msdn.microsoft.com/en-us/library/windows/desktop/ms632589.aspx。

  • SetWindowsHookEx详解

    HOOK钩子详细介绍  基本概念   钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。   钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目

  • vc++键盘钩子和鼠标钩子

    键盘钩子

  • Windows钩子的使用

    我们知道Windows中的窗口程序是基于消息,由事件驱动的,在某些情况下可能需要捕获或者修改消息,从而完成一些特殊的功能(MFC框架就利用Windows钩子对消息进行引导)。对于捕获消息而言,无法使用IAT或Inline Hook之类的方式去进行捕获,这就要用到接下来要介绍的Windows提供的专门用于处理消息的钩子函数。 1. 挂钩原理 Windows下的应用程序大部分都是基于消息机

  • Windows钩子及钩子函数简介

    WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过“钩挂”,您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做“钩子函数”,当每次发生您感兴趣的事件时,WINDOWS都将调用该函数。一共有两种类型的钩子:局部的和远程的。   局部钩子仅钩挂您自己进程的事件。   远程的钩子还可以将钩挂其它进程发生的事件。远程的钩子又有两种:   基于线程的 它将捕获其它进程中某一特定线程的事件。简言之,就是可以用来观察其它进程中的某.

  • 低级鼠标钩子WH_MOUSE_LL

    翻MSDN可知,鼠标钩子类型有两个,一个是WH_MOUSE,另一个是WH_MOUSE_LL, 至于它们的区别,百度了一下: 1.WH_MOUSE只能监控钩子所在模块的鼠标事件。 2.WH_MOUSE_LL可以截获整个系统所有模块的鼠标事件。 ---------------------------------------------------------------------------

Global site tag (gtag.js) - Google Analytics