使用 javascript 来操作文件,是严格被禁止的,因为你不想一打开网页,硬盘灯就狂闪,然后把你硬盘的文件/列表都慢慢的上传上去,那么你就危险了。所以一般情况下,javascript 操作文件,都是在网页中提供文件上传控件。此时,你需要允许,才会使此网页获得相应的文件的信息。HTML5 以前的文件上传控件,都是以

<input type="file">

来进行的,此时,我们会得到关于此文件的一些信息,包括。

name – 文件名
size – 文件大小
type – 文件的 MIME 类型。

而此时你就可以随时访问这些文件的属性而不用直接去操作文件。那么就用正常的表单方式上传就可以了。

获得文件属性

在点击浏览添加完文件之后,就可以使用如下的 javascript 代码来获取相应的文件属性了。此处使用了添加事件(change)的方式,当然一旦选择了文件之后,这些属性随时都可以获得。

<input type="file" id="your-files" multiple>
<script>
var control = document.getElementById("your-files");
control.addEventListener("change", function(event) {
    // 当 control 改变的时候
    var i = 0,
        files = control.files,
        len = files.length;
    for (; i < len; i++) {
        console.log("Filename: " + files[i].name);
        console.log("Type: " + files[i].type);
        console.log("Size: " + files[i].size + " bytes");
    }
}, false);
</script>

当 your-files 这个对象发生改变的时候,就执行下面的代码。

拖动上传/Drag and drop

虽然之前的文件上传方式可以使用,但是总是不人性化,操作起来比较麻烦,而且还不强大。(其实我认为拖动上传也不人性化,最大化浏览器好好地,要上传了,先缩小浏览器窗口,然后在拖动?麻烦不!)
但是拖动上传总有他的优点呢。并且 html5 相对来说,给了上传文件更多的属性和事件。

例如,如下代码:

<div id="your-files">&lt;/div>
<script>
var target = document.getElementById("your-files");

target.addEventListener("dragover", function(event) {
    event.preventDefault();
}, false);

target.addEventListener("drop", function(event) {

    // 阻止浏览器默认动作
    event.preventDefault();

    var i = 0,
        files = event.dataTransfer.files,
        len = files.length;

    for (; i < len; i++) {
        console.log("Filename: " + files[i].name);
        console.log("Type: " + files[i].type);
        console.log("Size: " + files[i].size + " bytes");
    }

}, false);
</script>

当你将文件拖动到 your-files 区域的时候,就可以看到 控制台 里面输出文件的信息了。当然,此时还不能上传。

使用 Ajax 上传

获得此文件以及相应的信息之后,就可以开始上传了。当然这里使用 ajax 方式上传。使用了定义在 XMLHttpRequest Level 2 中的 FormData 对象,可以表示一个 HTML 表单,并且使用“属性:值” 这样的方式,使用 append() 方法来提交表单。

var form = new FormData();
form.append("name", "Nicholas");

FormData 对象的好处就是可以直接的获取文件内容。并且可以十分有效的模拟一个表单,而你只需要增加一些特别的信息,例如文件名等,其他的浏览器都会自己去做。

// 创建一个有多个数据的表单
var form = new FormData();
form.append("name", "Nicholas");
form.append("photo", control.files[0]);

// 通过 XHR 传送,没有传送 header!
var xhr = new XMLHttpRequest();
xhr.onload = function() {
    console.log("Upload complete.");
};
xhr.open("post", "/entrypoint", true);
xhr.send(form);

一旦通过 send() 方法提交表单之后,浏览器就会同时将 header 信息也提交给服务器。所以不用担心文件的编码问题。其实就像原始的表单提交一样,例如此处,对于 php 来说,就可以使用:

$_POST["name"];
$_POST["photo"];

来获取相应文件的信息了。不过目前只有现代浏览器才支持,例如 IE 要等到 10 才行。

下一节,虽然添加,上传文件很简单,这么点就弄完了,但是如何获取文件数据呢?这就是下节要讨论的了。

一些相关的链接:
File API specification (草案)(英文)
HTML5 Drag and Drop(英文)
XMLHttpRequest Level 2(英文)

这是一系列对于初学者的 javascript 文章,包括很多的基础知识,由于我也是初学者,所以,翻译过来,大家一起学习,这一系列就叫做 javascript 101 吧,嘿嘿,当然,一般情况下,每篇文章,基本不会超过十分钟。
那么,就先从基本的“值”来说吧。
“值”的类型
在 javascript 中,与其他语言对比,很多不起眼的或者说对其他语言来说是缺点的东西,却恰恰是 javascript 的魅力所在。
看一下下面的例子。有几种数据类型。

var one = 1, oneObject = new Number(1);
log(one === oneObject);
log(typeof(one), typeof(oneObject));

也可以在这里直接进行调试:http://jsfiddle.net/uWup3/.
在这个例子中,使用了“恒等号”,也即是“===”,来对比 值 “1” 和 对象(object)“new Number(1)” 是否相等,肯定的,返回了 “false” ,原因就是 “1” 是原始值,而 “new Number(1)” 的到的是一个对象,可以通过 typeof 来验证。
其他的原始值:”undefined”,”Null”,”Boolean”,”Number”以及 “string”,对于涉及到未定义的数据的时候,其值为 “undefined”。

创建对象(object)
在 javascript 中,我们主要关注的还是对象,这也就是为什么 JSON 这么的流行和有用。其中的原因就是对象的灵活性。对于对象和原始值的主要区别就是“对象由多个项目组成”。

var javascript = {
  influences: ['C', 'Java', 'Scheme']
, designer: 'Brendan Eich'
, created: new Date(1995, 0, 1)
};

在此对象(javascript)中的项目(influences/designer/created)被称作“属性”,而且对于属性的值,可以是不同类型的,例如原始值,对象,数组,等。这也就是对象的灵活之处。
还有一种创建对象的方式:

var javascript = new Object({
  influences: ['C', 'Java', 'Scheme']
, designer: 'Brendan Eich'
, created: new Date(1995, 0, 1)
});

此种方式使用了 new Object 创建了一个对象的实例(instance),但是,虽然创建方式不一样,但是根据语言规范,这两种方式创建的对象是一样的。但是此种方式一般不推荐使用。

但是这里唯一需要注意的是,对于 constructor 函数的使用,很多种情况下 constructor 函数都是对象,另外,还有一些系统内置函数,例如 Date();

Constructors 函数
上一段代买,看起来其实不太像代码,而像一些数据的集合,那么这里我们将会创建一个 Constructor 函数(如何能使同一种功能的代码初始化),来使上段代码可以被重复利用。

function Language(designer, created, influences) {
  this.designer = designer;
  this.created = created;
  this.influences = influences;
}

var javascript = new Language(
  'Brendan Eich'
, new Date(1995, 0, 1)
, ['C', 'Java', 'Scheme']
);

这时候,同样的可以在创建一个实例:

var c = new Language(
  'Dennis Ritchie'
, new Date(1972, 0, 1)
, ['B', 'ALGOL']
);

此构造函数可以使用 constructor 属性来访问,例如,此时,c.constructor 将返回:

function Language(designer, created, influences) {
  this.designer = designer;
  this.created = created;
  this.influences = influences;
}

而 javascript.constructor 也将返回同样的代码。

在 ES5 的规范下,还有一些其他的原型对象的属性,例如,toString,还有比较陌生的 hasOwnProperty 方法。

这篇文章就讲到这里,下一篇将会介绍 prototypes (原型),javascript 中非常重要的概念。

很久以前整理了篇将 手 机网站做成手机应用的JS框架。时隔一年多,很多新的技术已经出现,下面再来总结下还有哪些框架是适合面向手机设备的开发的。

1、 jQuery Mobile

jQuery Mobile 是 jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台。jQuery Mobile开发团队说:能开发这个项目,我们非常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动Web网站。

2、 jQTouch

jQTouch 是一个 jQuery 的插件,主要用于手机上的 Webkit 浏览器上实现一些包括动画、列表导航、默认应用样式等各种常见UI效果的 JavaScript 库。支持包括 iPhone、Android 等手机。

3、 DHTMLX Touch

DHTMLX Touch是一个免费的HTML5/JavaScript框架,专门为触摸屏设备而优化。为您带来快速开发工艺精美的移动Web应用程序的能力。 DHTMLX Touch UI Designer是 一个可视化的编辑器用于构建移动用户界面。它能够帮您以最少的编码构建一流的用户界面。在其主页上提供一些示例可以展示DHTMLX Touch强大的用户界面。包括一个 menu app for the iPad (适用于开发餐厅应用) 和Book Shop (一个电子书店应用)。

4、 Mobilize.js

Mobilize.js是一个开源的HTML5-JavaScript框架用于从任何现在有标准网站快速,简便地构建移动网站。这个框架其实就是 将需要在移动设备上显示的部分页面以jQuery Mobile的默认主题显示,而不是实现一个全新完整的移动页面。Mobilize.js 可用于任意网站,但对于基于WordPress和Sphinx的网站不需要使用该框架转换,因为已经有非常多的插件可以使用。

5、 The M Project

The-M-Project是另外一个强大的JavaScript框架,它利用HTML5新的特性来更好和更简便地开发移动应用。这个框架遵循著 名的MVC软件架构模式。它还支持离线,所以你的用户可以在没有连接网络的情况下继续操作(当下次有连线的时候,再将数据同步到服务器中)。提供优秀的文 档(这个项目拥有一个引导新用户入门的 开发指南)。可以查看提供的 示例来对该项 目有一个初目的了解。这些示例包括: ToDo App(待办事项 目应用) 和 KitchenSink (这个示例包括这个框架提供的所有UI元素)。

6、 WebApp.Net

WebApp.Net 提供了很多的 API,因此可以帮助你节省很多工作了。不需要花时间去进行 Ajax 调用的编码,因为已经内置了,另外还有很多其它内置功能,提供了详细的文档和应用演示。

7、 Wijmo

Wijmo是一个基于jQuery UI的UI部件的套件。Wijmo部件进行了优化客户端Web开发和利用jQuery的优越的性能和易用性的力量。所有的Wijmo部件都配备了20多个 主题和支持ThemeRoller。

8、 960 Grid on jQuery-Mobile

jquery-mobile-960 是一个用于移动 Web 开发的网格框架,综合了 960.gs 的灵活性和 jQuery Mobile 的方便性。它的目的是让 jQuery Mobile 布局更加的灵活,使得应用应许在移动终端更加易用。

9、 Sencha Touch

Sencha Touch 是世界上第一个基于 HTML5 的移动 Web 开发框架,支持最新的 HTML5 和 CSS3 标准,全面兼容 Android 和 Apple iOS 设备,提供了丰富的 WEB UI 组件,可以快速的开发出运行于移动终端的应用程序。Shencha是第一个使用HTML5,CSS和JavaScript并且支持音频/视频,本地存储, 圆角,渐变背景以及阴影的开发框架。

10、 NimbleKit

NimbleKit 是为 iOS 设备构建应用程序最快速的方式,你不需要知道 Objective-C 或者 iOS SDK,你只需结合 JavaScript 代码编写 HTML 页面就可以了。

11、 Touchy™ Boilerplate

Touchy Boilerplate 是一个用来创建移动web app,包括HTML模板,Meta tag等的工具。Touchy可以支持动态页面导航,固定页头,滚动内容,浏览历史记录等功能。Touchy使用jQuery或者 Zepto.JS。

12、 PhoneGap

PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够利用 iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系 人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。PhoneGap是免费的,但是它需要特定平台提供的附加软件,例如 iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5配套开发。使用PhoneGap只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样的,但是你仍然需要为每个 平台分别编译应用程序。

13、 joshfire

Joshfire是一个开源的跨设备开发框架,帮助开发者创建可以在多种设备上运行的web app。它使用HTML5和JavaScript,并且允许开发者快速整合本地应用和特定的web应用。Joshfire可以让你的应用接受键盘,鼠标, 触摸屏,遥控器等设备的输入。Joshfire支持Node.JS。4.Sencha Touch:基于HTML5的移动网页开发框架。

14、 Julia

Julia框架由基本CSS3文件、JS库和各个平台的运行库构成。不像PhoneGap,Julia不仅仅包含调用本机代码的接口层,它还包含 Model-View-Controller(MVC)支持,Delegation支持,OAuth支持,异步数据库存取接口,HTML选择符(类 jQuery调用接口),HTML模版(允 许嵌入JS代码)等应用开发必备的API接口。 基于Julia的应用开发就像网站开发那么简单,是的,你终于可以用HTML5开发一个完整的、跨平台 的、不亚于本机代码的、易于维护的移动应用了!大幕即将揭晓,让我们一起进入移动开发的新时代。(注:不过目前来看,此项目貌似即将流产。)

15、SproutCore HTML5 Application Framework

SproutCore 是一个 HTML5 移动 Web 开发框架,它的目标是在无需浏览器插件的情况下,在浏览器中位应用程序提供极佳的桌面效果。

16、 Titanium

这是一个强大的,健壮的移动Web开发框架。能够让使用现有的HTML, CSS和JavaScript知识来为 iOS和Android平台开发原生移动应用。作为一个越来越大的移动Web框架,它拥有超过300个的APIs和活跃的开发者社区。你从这个社区中得到 每一个开发人员的帮助。Titanium Mobile支持原生的iOS和Android UI元素如Table views, tabs, switches和popovers。它提供能够与移动设备的摄像头和本地文件存储系统相交互的特性。

17、 Lungo.js

Lungo.js 是一个采用HTML5, CSS3 和JavaScript技术实现的移动Web应用程序开发框架。利用这框架开发的应用程序可运行所有流行的平台包括:iOS, Android, Blackberry 和 WebOs。它还支持触摸事件如:tap, double-tap和swipe。整个框架没有用到任何图片包括图标,所有都矢量化。可以在这个框架中使用HTML5拥有的一些特性如:WebSQL, 地理位置定位,历史或设备方向等。Lungo.js是一个模块化并且完全可定制的框架。

18、 xui.js

有时候你可能需要一个超轻量级的框架,只要拥有用于开发标准客户端所需要的功能如:DOM操作,事件处理,Ajax和一些动画效果。如果是这样的 话,这个框架刚好非常适合你。整个框架采用GZIP压缩完之后只有4.2 KB。

19、 EmbedJS

EmbedJS是一个用于嵌入式设备的JavaScript框架如:移动电话,TVs、tablets和so forth。EmbedJS强大之处在于,它拥有专门为特定平台和浏览器如iOS, Firefox, Android等提供相应的开发版本。这样就能够以最少的代码,为用户提供最佳的体验。而且假如你喜欢自己定制,可以利用其提供的 EmbedJS Build tool工 具实现。EmbedJS基于Dojo实现,所以你如果熟悉Dojo API语法,那EmbedJS将是你最佳的选择。

20、 zepto.js

zepto.js是一个专为mobile WebKit浏览器(如:Safari和Chrome)而开发的一个JavaScript框架。它标榜自己在其简约的开发理念,能够帮助开发人员简单、快 速地完成开发交付任务。更重要的是这个JS框架,是超轻量级的,只有5KB。zepto.js的语法借鉴并且兼容jQuery。

21、 Baker

Baker是用来在iPad或者iPhone平台上发布交互式的电子书或者电子杂志的HTML5电子书框架。

22、 ChocolateChip-UI

ChocolateChip-UI 是一个手机移动 Web 开发框架,采用 HTML5, WAML, CSS 和 JavaScript等技术实现。基于 ChocolateChip JavaScript 框架,包含最新的 ChUI.JS 和 ChUI.css.

23、 Magazine Grid

Magazine Grid 是一个超现代的 CSS 框架,用于 iPad 和 iPhone 手机,使用类似杂志的设计风格。Magazine Grid 可让用户使用 HTML5 元素来组织杂志页,非常轻量级(Kendo UI Kendo UI是一个强大的框架用于快速HTML5 UI开发。基于最新的HTML5、CSS3和JavaScript标准。 Kendo UI包含了开发现代JavaScript开发所需要的所有一切,包括:强大的数据源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件。

25、 HTML App Host Framework

这是一个用于构建基于 Windows Phone 7 的 HTML/JavaScript 托管框架,使用 HTML5 技术。该框架由支持在标准 xap 格式中嵌入 html 应用的控件。

 

来自:http://9840.cn/chengxuyuan/596,662.html

近日有消息说 Google 即将在 4 月第一周发布传言好多年的 Google Drive,不过貌似进入四月份之后,传言看起来越来越像真的了。

不过有些事实却要改变了。之前一直传言 Google Drive 提供的免费空间和 Google Doc 一样,都是 1GB ,但目前又有消息称,Google Drive 提供的免费空间达到 5GB 。虽然比较多,但是和微软的 25GB 比起来还是小巫见大巫了。不过一般情况下都够用了。

Google Drive 即将发布 5GB 免费空间

并且从截图来看,还有包括 PC 端,移动端的 APP。可以像Dropbox 以及国内的 金山快盘,115同步盘一样,自动同步文件。

不过传言归传言,具体真像还是要等 Google 发布 Google Drive 的那一天。

住新小区,办了电信的光纤宽带 4M免费提升8M速度刚刚的。但是电信说只能使用四台设备,而且每台设备联网的时候都必须拨号。那么我的手机啊这些无线设备不是就废了。所以想办法将这个光猫破解下,然后让它具有路由和自动拨号功能。

这里有两个方案,方案一比较简单,但是需要一个无线路由器。方案二才是破解,使HG8245具有自动拨号和路由功能。

先来看方案一
需要的东西:
无线路由器一个,网线一根。

将网线一头接到光猫的某个 lan 口,然后另一端接到无线路由器的 Wan 口,然后在无线路由器上设置 PPPoE 拨号,这个很简单,就不多说了,设置好了之后,就是无线路由的无线设置了,这个也简单,其实,填写了 PPPoE 的用户名和密码之后,点击保存,一般情况下就会链接成功的。

有时候还需要点击链接按钮的。

下来看方案二

方案二比较麻烦,但是按步骤做的话,也是比较简单的。

首先使用 HG8245 的超级账号登录,不是光猫背后的用户名和密码,那个是一般账户,不能修改的。此路由的超级用户名是 telecomadmin,密码是 nE7jA%5m 。

登录成功之后,点击 “网络”—“宽带设置” 就会看到如图所示的界面。

华为光猫HG8245开路由自动拨号

点击含有 “INTERNET”字符的这一项,然后记住相关参数,一定要记住,因为一会要删除,而之后设置还要用到,最好截个图,以备不时之需。

然后点击右上角 删除 按钮。

此时已经上不了网了。然后再点击右上角 新建 按钮。

此时按照此图进行设置。

华为光猫HG8245开路由自动拨号

链接类型选择 路由,服务列表,选择 INTERNET,组播 VLAN ID 输入刚才记录下来的参数。获取IP 方式,选择 PPPoE ,勾选 能使 NAT ,然后输入电信给你的用户名和密码,用户名要加区号的。拨号方式按需选择,但是最好选择自动,反正是包月的,省的每次上网再触发拨号。绑定项,能勾的都勾起来。好了,点击应用。等待一会,看是不是已经成功了?有些电脑第一次连要等一会。

然后就去设置你的无线连接,当然可以使用此猫的默认无线设置。

好了,完成。

至于有些地方电信在成功安装之后会将超级账户的用户名和密码远程修改掉。则需要用另一种方式来获取此用户名和密码了。

方式如下:

1. 如果是 xp 则直接可以操作,如果是 windows 7 的话,则先进入控制面板-程序-打开或关闭windows 功能,勾选 telnet 服务端和 telnet 客户端。
2. 将电脑的 IP 和光猫的 IP 设置到一个网段。自动连接的话一般都是。
3. 打开 CMD 终端,也就是 DOS 界面,就是“CMD”那个,输入telnet 192.168.1.1。
4. 输入用户名 root 密码 admin
5. 出现 wap
6. 输入 shell
7. 然后输入 cd /mnt/jffs2 进入目录
8. 然后输入 grep telecomadmin hw_ctree.xml
9. 得到超级用户名和密码了。即 userName=…… 和 Password=…… 其中星号所表示的内容。
10. 记录下来在浏览器中http://192.168.1.1用超级用户名和密码登录。成功!

战马720.mkv 6.54 GB

英文片名: War Horse
国家地区: 美国
影片类型: 剧情片
资源格式: 720P,1080P,掌上设备
上影时间: 2011
导 演: 史蒂文·斯皮尔伯格 Steven Spielber
主 演: 杰瑞米·艾文 Jeremy Irvine ….Albert Narracott

对白语言: 英语
字幕语种: 中英

不多介绍了

迅雷快传:http://kuai.xunlei.com/d/ROQGHDSEUOIM

电驴:
ed2k://|file|f-war.horse.720.mkv|7026678654|A766CFF9240E771F23C8B9AC3282AA1E|h=7QO6HSAT32W7LYB5GGDZNEAJQ6A5PALH|/