html5中文学习网

您的位置: 首页 > html5教程 > 入门教程 » 正文

突袭HTML5之Javascript API扩展4―拖拽(Drag/Drop)概述_html5教程技巧

[ ] 已经帮助:人解决问题
点评:拖拽(Drag/Drop)是个非常普遍的功能,可以抓住一个对象,并且拖动到你想放置的区域;在HTML5中,拖拽(draganddrop)成为了标准操作,任何元素都支持。正因为这个功能太普遍了,所有的主流浏览器都支持这个操作,感兴趣的朋友可以了解下,或许对你有所帮助
拖拽(Drag/Drop)是个非常普遍的功能。你可以抓住一个对象,并且拖动到你想放置的区域。很多javascript都类似实现了相关的功能,例如,jQueryUI的draganddrop组件。在HTML5中,拖拽(draganddrop)成为了标准操作,任何元素都支持。正因为这个功能太普遍了,所有的主流浏览器都支持这个操作。 n4eHTML5中文学习网 - HTML5先行者学习网
启用拖拽-draggable属性 n4eHTML5中文学习网 - HTML5先行者学习网
非常简单,只需要将一个元素的拖动属性修改为draggable,这个元素就支持拖动了,如下所示: n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
<imgdraggable="true"/> n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
拖动中数据的传递 n4eHTML5中文学习网 - HTML5先行者学习网
拖动的过程中,我们往往需要传递相应的逻辑数据来完成转换的过程,这里主要是使用dataTransfer对象进行数据传递,下面先看看它的成员: n4eHTML5中文学习网 - HTML5先行者学习网
方法成员: n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
setData(format,data):把被拖动的数据赋值给dataTransfer对象。 n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
format:一个String型参数,指定被拖动数据的类型。该参数取值可以是“Text”(文本类型)和“URL”(URL类型)。该参数是大小写无关的,所以传入"text"与"Text"是一样的。 n4eHTML5中文学习网 - HTML5先行者学习网
data:一个变体类型参数,指定被拖动的数据。该数据可以是文本,图片路径,URL等等。 n4eHTML5中文学习网 - HTML5先行者学习网
该函数有Boolean类型的返回值,true表示数据成功加到dataTransfer中,false代表不成功。如果需要,可以通过这个参数来决定是否应该继续执行某些逻辑。 n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
getData(format):获取dataTransfer中存放的拖动数据。 n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
format意义与setData中的一样,取值可以是"Text"(文本类型)和"URL"(URL类型)。 n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
clearData(format):移除指定类型的数据。 n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
这里的format除了上面可以指定的"Text"(文本类型)和"URL"(URL类型)外,还可以取下列值:file-文件,html-html元素,image-图片。 n4eHTML5中文学习网 - HTML5先行者学习网
这个方法可以用于去选择性的处理拖动的数据类型。 n4eHTML5中文学习网 - HTML5先行者学习网
属性成员n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
effectAllowed:设置或获取数据源元素中的数据可以执行的操作。 n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
属性类型为字符串,取值范围如下: n4eHTML5中文学习网 - HTML5先行者学习网
"copy"-复制数据. n4eHTML5中文学习网 - HTML5先行者学习网
"link"-链接数据. n4eHTML5中文学习网 - HTML5先行者学习网
"move"-移动数据 n4eHTML5中文学习网 - HTML5先行者学习网
"copyLink"-复制或链接数据,由目标对象来确定。 n4eHTML5中文学习网 - HTML5先行者学习网
"copyMove"-复制或移动数据,由目标对象来确定。 n4eHTML5中文学习网 - HTML5先行者学习网
"linkMove"-链接或移动数据,由目标对象来确定。 n4eHTML5中文学习网 - HTML5先行者学习网
"all"-所有的操作都是支持的。 n4eHTML5中文学习网 - HTML5先行者学习网
"none"-禁止拖动。 n4eHTML5中文学习网 - HTML5先行者学习网
"uninitialized"-默认值,采用默认的行为。 n4eHTML5中文学习网 - HTML5先行者学习网
注意设置effectAllowed为none以后,拖动是禁止的,但是鼠标形状还是显示没有可拖动的对象的形状,如果想不显示这个鼠标形状,则需要将window的event事件的属性returnValue设置为false。 n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
dropEffect:设置或获取拖动的目标上允许的操作以及相关的鼠标形状。 n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
属性类型为字符串,取值范围如下n4eHTML5中文学习网 - HTML5先行者学习网
"copy"-鼠标显示为复制时的形状; n4eHTML5中文学习网 - HTML5先行者学习网
"link"-鼠标显示为连接的形状; n4eHTML5中文学习网 - HTML5先行者学习网
"move"-鼠标显示为移动的形状。 n4eHTML5中文学习网 - HTML5先行者学习网
"none"(默认值)-鼠标显示为没有拖动的形状。 n4eHTML5中文学习网 - HTML5先行者学习网
effectAllowed指定了数据源支持的操作,所以通常在ondragstart事件中指定。dropEffect指定了拖动放置的目标支持的操作,所以与effectAllowed配合,通常在拖动的目标上的ondragenter,ondragover和ondrop等事件中使用。 n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
files:返回拖动的文件的列表FileList。 n4eHTML5中文学习网 - HTML5先行者学习网
types:ondragstart中发送的数据(被拖动的数据)类型的列表。 n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
dataTransfer对象的存在,使得在拖动的数据源和目标元素之间传递逻辑数据变成了可能。通常我们使用setData方法在数据源元素的ondragstart事件中提供数据,然后再目标元素中,使用getData方法获取数据。 n4eHTML5中文学习网 - HTML5先行者学习网
拖动中触发的事件 n4eHTML5中文学习网 - HTML5先行者学习网
下面是一次拖拽会发生的事件,基本上事件的触发顺序也就是下面的顺序: n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
dragstart:要被拖拽的元素开始拖拽时触发,这个事件对象是被拖拽元素。 n4eHTML5中文学习网 - HTML5先行者学习网
drag:拖拽元素时触发,这个事件对象是被拖拽元素。 n4eHTML5中文学习网 - HTML5先行者学习网
dragenter:拖拽元素进入目标元素时触发,这个事件对象是目标元素。 n4eHTML5中文学习网 - HTML5先行者学习网
dragover:拖拽某元素在目标元素上移动时触发,这个事件对象是目标元素。 n4eHTML5中文学习网 - HTML5先行者学习网
dragleave:拖拽某元素离开目标元素时触发,这个事件对象是目标元素。 n4eHTML5中文学习网 - HTML5先行者学习网
drop:将被拖拽元素放在目标元素内时触发,这个事件对象是目标元素。 n4eHTML5中文学习网 - HTML5先行者学习网
dragend:在drop之后触发,就是拖拽完毕时触发,这个事件对象是被拖拽元素。 n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
基本上事件的参数event都会传入相关的元素,可以很方便的进行一些修改。这里,我们并不需要处理每个事件,通常只需要挂接主要的几个事件即可。 n4eHTML5中文学习网 - HTML5先行者学习网
拖动开始-ondragstart事件 n4eHTML5中文学习网 - HTML5先行者学习网
从这个事件传入的参数含有的信息非常丰富,从中可以很方便的获取到被拖动的元素(event.Target);从中可以设置被拖动数据(event.dataTransfer.setData);所以你可以很方便实现拖动的背后逻辑(当然你绑定的时候也可以传递其他的参数)。 n4eHTML5中文学习网 - HTML5先行者学习网
拖动过程中-ondrag,ondragover,ondragenter和ondragleave事件 n4eHTML5中文学习网 - HTML5先行者学习网
ondrag事件的对象是被拖拽元素,通常这个事件处理的比较少。ondragenter事件是当拖动进入当前元素时发生,ondragleave事件是在当拖动离开当前元素时发生,ondragover事件是在拖动在当前元素中移动时发生。 n4eHTML5中文学习网 - HTML5先行者学习网
这里只需要注意一点,因为默认情况下,浏览器是禁止元素drop的,所以为了让元素可以drop,需要在这个函数中返回false或者调用event.preventDefault()方法。如下面的例子所示。 n4eHTML5中文学习网 - HTML5先行者学习网
拖动结束-ondrop,ondragend事件 n4eHTML5中文学习网 - HTML5先行者学习网
当可拖动的数据被drop的时候,drop事件触发。drop结束后,dragend事件被触发,这个事件使用的也相对少一点。 n4eHTML5中文学习网 - HTML5先行者学习网
看一个简单的例子: n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
<!DOCTYPEHTML> n4eHTML5中文学习网 - HTML5先行者学习网
<html> n4eHTML5中文学习网 - HTML5先行者学习网
<head> n4eHTML5中文学习网 - HTML5先行者学习网
<scripttype="text/javascript"> n4eHTML5中文学习网 - HTML5先行者学习网
functionallowDrop(ev){ n4eHTML5中文学习网 - HTML5先行者学习网
ev.preventDefault(); n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
functiondrag(ev){ n4eHTML5中文学习网 - HTML5先行者学习网
ev.dataTransfer.setData("Text",ev.target.id); n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
functiondrop(ev){ n4eHTML5中文学习网 - HTML5先行者学习网
vardata=ev.dataTransfer.getData("Text"); n4eHTML5中文学习网 - HTML5先行者学习网
ev.target.appendChild(document.getElementById(data)); n4eHTML5中文学习网 - HTML5先行者学习网
ev.preventDefault(); n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
</script> n4eHTML5中文学习网 - HTML5先行者学习网
</head> n4eHTML5中文学习网 - HTML5先行者学习网
<body> n4eHTML5中文学习网 - HTML5先行者学习网
<divid="div1"ondrop="drop(event)"ondragover="allowDrop(event)"></div> n4eHTML5中文学习网 - HTML5先行者学习网
<imgid="drag1"src="img_logo.gif"draggable="true"ondragstart="drag(event)"width="336"height="69"/> n4eHTML5中文学习网 - HTML5先行者学习网
</body> n4eHTML5中文学习网 - HTML5先行者学习网
</html> n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
文件拖拽 n4eHTML5中文学习网 - HTML5先行者学习网
上面的例子已经使用了dataTransfer的各种方法和属性,下面再看网上的另外一个有趣的应用:拖拽一个图片到网页上,然后在网页上显示。这个应用用到了dataTransfer的files属性。 n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
<!DOCTYPEHTML> n4eHTML5中文学习网 - HTML5先行者学习网
<html> n4eHTML5中文学习网 - HTML5先行者学习网
<head> n4eHTML5中文学习网 - HTML5先行者学习网
<metacharset="utf-8"> n4eHTML5中文学习网 - HTML5先行者学习网
<title>HTML5拖放文件</title> n4eHTML5中文学习网 - HTML5先行者学习网
<style> n4eHTML5中文学习网 - HTML5先行者学习网
#section{font-family:"Georgia","微软雅黑","华文中宋";} n4eHTML5中文学习网 - HTML5先行者学习网
.container{display:inline-block;min-height:200px;min-width:360px;color:#f30;padding:30px;border:3pxsolid#ddd;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;} n4eHTML5中文学习网 - HTML5先行者学习网
.preview{max-width:360px;} n4eHTML5中文学习网 - HTML5先行者学习网
#files-list{position:absolute;top:0;left:500px;} n4eHTML5中文学习网 - HTML5先行者学习网
#list{width:460px;} n4eHTML5中文学习网 - HTML5先行者学习网
#list.preview{max-width:250px;} n4eHTML5中文学习网 - HTML5先行者学习网
#listp{color:#888;font-size:12px;} n4eHTML5中文学习网 - HTML5先行者学习网
#list.green{color:#09c;} n4eHTML5中文学习网 - HTML5先行者学习网
</style> n4eHTML5中文学习网 - HTML5先行者学习网
</head> n4eHTML5中文学习网 - HTML5先行者学习网
<body> n4eHTML5中文学习网 - HTML5先行者学习网
<divid="section"> n4eHTML5中文学习网 - HTML5先行者学习网
<p>把你的图片拖到下面的容器内:</p> n4eHTML5中文学习网 - HTML5先行者学习网
<divid="container"class="container"> n4eHTML5中文学习网 - HTML5先行者学习网
</div> n4eHTML5中文学习网 - HTML5先行者学习网
<divid="files-list"> n4eHTML5中文学习网 - HTML5先行者学习网
<p>已经拖进过来的文件:</p> n4eHTML5中文学习网 - HTML5先行者学习网
<ulid="list"></ul> n4eHTML5中文学习网 - HTML5先行者学习网
</div> n4eHTML5中文学习网 - HTML5先行者学习网
</div> n4eHTML5中文学习网 - HTML5先行者学习网
<script> n4eHTML5中文学习网 - HTML5先行者学习网
if(window.FileReader){ n4eHTML5中文学习网 - HTML5先行者学习网
varlist=document.getElementById('list'), n4eHTML5中文学习网 - HTML5先行者学习网
cnt=document.getElementById('container'); n4eHTML5中文学习网 - HTML5先行者学习网
//判断是否图片 n4eHTML5中文学习网 - HTML5先行者学习网
functionisImage(type){ n4eHTML5中文学习网 - HTML5先行者学习网
switch(type){ n4eHTML5中文学习网 - HTML5先行者学习网
case'image/jpeg': n4eHTML5中文学习网 - HTML5先行者学习网
case'image/png': n4eHTML5中文学习网 - HTML5先行者学习网
case'image/gif': n4eHTML5中文学习网 - HTML5先行者学习网
case'image/bmp': n4eHTML5中文学习网 - HTML5先行者学习网
case'image/jpg': n4eHTML5中文学习网 - HTML5先行者学习网
returntrue; n4eHTML5中文学习网 - HTML5先行者学习网
default: n4eHTML5中文学习网 - HTML5先行者学习网
returnfalse; n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
//处理拖放文件列表 n4eHTML5中文学习网 - HTML5先行者学习网
functionhandleFileSelect(evt){ n4eHTML5中文学习网 - HTML5先行者学习网
evt.stopPropagation(); n4eHTML5中文学习网 - HTML5先行者学习网
evt.preventDefault(); n4eHTML5中文学习网 - HTML5先行者学习网
varfiles=evt.dataTransfer.files; n4eHTML5中文学习网 - HTML5先行者学习网
for(vari=0,f;f=files[i];i++){ n4eHTML5中文学习网 - HTML5先行者学习网
vart=f.type?f.type:'n/a', n4eHTML5中文学习网 - HTML5先行者学习网
reader=newFileReader(), n4eHTML5中文学习网 - HTML5先行者学习网
looks=function(f,img){ n4eHTML5中文学习网 - HTML5先行者学习网
list.innerHTML+='<li><strong>'+f.name+'</strong>('+t+ n4eHTML5中文学习网 - HTML5先行者学习网
')-'+f.size+'bytes<p>'+img+'</p></li>'; n4eHTML5中文学习网 - HTML5先行者学习网
cnt.innerHTML=img; n4eHTML5中文学习网 - HTML5先行者学习网
}, n4eHTML5中文学习网 - HTML5先行者学习网
isImg=isImage(t), n4eHTML5中文学习网 - HTML5先行者学习网
img; n4eHTML5中文学习网 - HTML5先行者学习网
//处理得到的图片 n4eHTML5中文学习网 - HTML5先行者学习网
if(isImg){ n4eHTML5中文学习网 - HTML5先行者学习网
reader.onload=(function(theFile){ n4eHTML5中文学习网 - HTML5先行者学习网
returnfunction(e){ n4eHTML5中文学习网 - HTML5先行者学习网
img='<imgclass="preview"src="'+e.target.result+'"title="'+theFile.name+'"/>'; n4eHTML5中文学习网 - HTML5先行者学习网
looks(theFile,img); n4eHTML5中文学习网 - HTML5先行者学习网
}; n4eHTML5中文学习网 - HTML5先行者学习网
})(f) n4eHTML5中文学习网 - HTML5先行者学习网
reader.readAsDataURL(f); n4eHTML5中文学习网 - HTML5先行者学习网
}else{ n4eHTML5中文学习网 - HTML5先行者学习网
img='"o((>ω<))o",你传进来的不是图片!!'; n4eHTML5中文学习网 - HTML5先行者学习网
looks(f,img); n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
//处理插入拖出效果 n4eHTML5中文学习网 - HTML5先行者学习网
functionhandleDragEnter(evt){this.setAttribute('style','border-style:dashed;');} n4eHTML5中文学习网 - HTML5先行者学习网
functionhandleDragLeave(evt){this.setAttribute('style','');} n4eHTML5中文学习网 - HTML5先行者学习网
//处理文件拖入事件,防止浏览器默认事件带来的重定向 n4eHTML5中文学习网 - HTML5先行者学习网
functionhandleDragOver(evt){ n4eHTML5中文学习网 - HTML5先行者学习网
evt.stopPropagation(); n4eHTML5中文学习网 - HTML5先行者学习网
evt.preventDefault(); n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
cnt.addEventListener('dragenter',handleDragEnter,false); n4eHTML5中文学习网 - HTML5先行者学习网
cnt.addEventListener('dragover',handleDragOver,false); n4eHTML5中文学习网 - HTML5先行者学习网
cnt.addEventListener('drop',handleFileSelect,false); n4eHTML5中文学习网 - HTML5先行者学习网
cnt.addEventListener('dragleave',handleDragLeave,false); n4eHTML5中文学习网 - HTML5先行者学习网
}else{ n4eHTML5中文学习网 - HTML5先行者学习网
document.getElementById('section').innerHTML='你的浏览器不支持啊,同学'; n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
</script> n4eHTML5中文学习网 - HTML5先行者学习网
</body> n4eHTML5中文学习网 - HTML5先行者学习网
</html> n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
这个例子中使用了html5中的文件读取API:FileReader对象;该对象提供了下列异步方法用于读取文件: n4eHTML5中文学习网 - HTML5先行者学习网
1.FileReader.readAsBinaryString(fileBlob) n4eHTML5中文学习网 - HTML5先行者学习网
以二进制的方式读取文件,result属性会包含一个文件的二进制的格式 n4eHTML5中文学习网 - HTML5先行者学习网
2.FileReader.readAsText(fileBlob,opt_encoding) n4eHTML5中文学习网 - HTML5先行者学习网
以文本的方式读取文件,result属性将会包含一个文件的文本格式,默认解码参数是“utf-8”。 n4eHTML5中文学习网 - HTML5先行者学习网
3.FileReader.readAsDataURL(file) n4eHTML5中文学习网 - HTML5先行者学习网
以URL形式读取文件result将会包含一个文件的DataURL格式(图片通常用这种方式)。 n4eHTML5中文学习网 - HTML5先行者学习网
当使用上面的方法读取文件后,会触发下列事件: n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
onloadstart,onprogress,onabort,onerror,onload,onloadend n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
这些事件都很简单,需要的时候挂接就可以了。看下面的代码示例: n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
functionstartRead(){ n4eHTML5中文学习网 - HTML5先行者学习网
//obtaininputelementthroughDOM n4eHTML5中文学习网 - HTML5先行者学习网
varfile=document.getElementById('file').files[0]; n4eHTML5中文学习网 - HTML5先行者学习网
if(file){ n4eHTML5中文学习网 - HTML5先行者学习网
getAsText(file); n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
functiongetAsText(readFile){ n4eHTML5中文学习网 - HTML5先行者学习网
varreader=newFileReader(); n4eHTML5中文学习网 - HTML5先行者学习网
//ReadfileintomemoryasUTF-16 n4eHTML5中文学习网 - HTML5先行者学习网
reader.readAsText(readFile,"UTF-16"); n4eHTML5中文学习网 - HTML5先行者学习网
//Handleprogress,success,anderrors n4eHTML5中文学习网 - HTML5先行者学习网
reader.onprogress=updateProgress; n4eHTML5中文学习网 - HTML5先行者学习网
reader.onload=loaded; n4eHTML5中文学习网 - HTML5先行者学习网
reader.onerror=errorHandler; n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
functionupdateProgress(evt){ n4eHTML5中文学习网 - HTML5先行者学习网
if(evt.lengthComputable){ n4eHTML5中文学习网 - HTML5先行者学习网
//evt.loadedandevt.totalareProgressEventproperties n4eHTML5中文学习网 - HTML5先行者学习网
varloaded=(evt.loaded/evt.total); n4eHTML5中文学习网 - HTML5先行者学习网
if(loaded<1){ n4eHTML5中文学习网 - HTML5先行者学习网
//Increasetheprogbarlength n4eHTML5中文学习网 - HTML5先行者学习网
//style.width=(loaded*200)+"px"; n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
functionloaded(evt){ n4eHTML5中文学习网 - HTML5先行者学习网
//Obtainthereadfiledata n4eHTML5中文学习网 - HTML5先行者学习网
varfileString=evt.target.result; n4eHTML5中文学习网 - HTML5先行者学习网
//HandleUTF-16filedump n4eHTML5中文学习网 - HTML5先行者学习网
if(utils.regexp.isChinese(fileString)){ n4eHTML5中文学习网 - HTML5先行者学习网
//ChineseCharacters+Namevalidation n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
else{ n4eHTML5中文学习网 - HTML5先行者学习网
//runothercharsettest n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
//xhr.send(fileString) n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
functionerrorHandler(evt){ n4eHTML5中文学习网 - HTML5先行者学习网
if(evt.target.error.name=="NotReadableErr"){ n4eHTML5中文学习网 - HTML5先行者学习网
//Thefilecouldnotberead n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
} n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
这里也简单说一下:普通的文件下载使用的就是window.open方法,例如: n4eHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
n4eHTML5中文学习网 - HTML5先行者学习网
window.open('http://aaa.bbbb.com/ccc.rar','_blank') n4eHTML5中文学习网 - HTML5先行者学习网
n4eHTML5中文学习网 - HTML5先行者学习网
实用参考:n4eHTML5中文学习网 - HTML5先行者学习网
官方文档:http://www.w3schools.com/html5/n4eHTML5中文学习网 - HTML5先行者学习网
一个不错的教程网站:http://html5.phphubei.com/html5/features/DrapAndDrop/n4eHTML5中文学习网 - HTML5先行者学习网
MSDN帮助:http://msdn.microsoft.com/en-us/library/ms535861(v=vs.85).aspxn4eHTML5中文学习网 - HTML5先行者学习网
文件拖拽详述:http://www.html5rocks.com/zh/tutorials/file/dndfiles/n4eHTML5中文学习网 - HTML5先行者学习网
文件拖拽并上传:http://www.chinaz.com/design/2010/0909/131984.shtmln4eHTML5中文学习网 - HTML5先行者学习网
文件拖拽上传完整例子:http://www.cnblogs.com/liaofeng/archive/2011/05/18/2049928.htmln4eHTML5中文学习网 - HTML5先行者学习网
文件下载的例子:http://hi.baidu.com/guo_biru/item/2d7201c012b6debd0c0a7b05n4eHTML5中文学习网 - HTML5先行者学习网
window.open攻略:http://www.cnblogs.com/liulf/archive/2010/03/01/1675511.htmln4eHTML5中文学习网 - HTML5先行者学习网
window.open参数:http://www.koyoz.com/blog/?action=show&id=176 n4eHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助