11/6/2016 8:35:35 AM
## 网络状态 ##
1. window.navigator.onLine
- window.navigator.onLine是一个属性,不能实时去监听当前的网络状态
- true 当前是有网的
2. 事件通知机制,当网络发生变化的时候,以事件的实时通知
- 事件 online : 从没有网到有网的状态的变换
window.addEventListener("online",function(){
tips.style.display = "block";
tips.innerHTML="网已连接上O(∩_∩)O~";
});
- 事件 offline: 从有网到没有网触发的事件
window.addEventListener("offline",function(){
tips.style.display="block";
tips.innerHTML="没有网了/(ㄒoㄒ)/~~";
});
## HTML5 地理定位 ##
1. 使用 getCurrentPosition() 方法来获得用户的位置
<script>
/*
判断当前的设备是否支持获取地理位置的对象
成功的回调函数和失败的回调函数
*/
if(window.navigator.geolocation){
window.navigator.geolocation.getCurrentPosition(function(position){
/*
position.coords.longitude 十进制数的经度
position.coords.latitude 十进制数的纬度
*/
var longitude = position.coords.longitude;
var latitude = position.coords.latitude;
console.log("您当前的经度为:"+longitude+"---您当前的纬度为:"+latitude);
},function(position){
console.log("获取位置信息失败");
});
}
</script>
## HTML5本地存储 ##
### 本地存储localStorage和sessionStorage ###
#### 基本的操作 ####
1. 设置数据,以键值对的形式进行存储
window.localStorage.setItem("testLS","001");
window.sessionStorage.setItem("testSS","002");
2. 取值数据 根据属性名进行取值属性值
console.log(window.localStorage.getItem("testLS"));//001
console.log(window.sessionStorage.getItem("testSS"));//002
3. 根据存储的下标值进行取值属性名
console.log(window.localStorage.key(0));//testLS
console.log(window.sessionStorage.key(0));//testSS
4. 取值数据的长度 注意:是对取出来的数据进行计算的长度
console.log(window.localStorage.key(0).length);//6
console.log(window.localStorage.getItem("testLS").length);//3
5. 移除指定数据,进行单个的移除
window.localStorage.removeItem("testLS");
window.sessionStorage.removeItem("testSS");
6. 进行移除存储空间下的所有的数据
window.localStorage.clear();
window.sessionStorage.clear();
#### localStorage和sessionStorage相同点和差别 ####
1. 相同点
1. 进行本地应用存储
2. 差异
1. 存储时间
- localStorage 可以进行长期的存储
- sessionStorage关闭当前页面,就找不到了,就是当前的会话周期内有效
- 注意
- file:///G注意: 要在同源路径下,直接通过http下面进行找到
- 代码
window.localStorage.setItem("waxun","289071767");
window.sessionStorage.setItem("kaguo","289071767");、、
2. 共享检测
1. `localstorage`
1. 可以进行不同窗口的数据共享在第二个窗口中可以进行访问到本地存储,可以进行取值的到
2. `sessionStorage`
1. 直接设置sessionStorage的值在另一个窗口是拿不到的,不可以进行数据共享
2. 通过a链接可以将本页面的sessionStorage存储的数据共享出去
3. 代码
脚本:window.sessionStorage.setItem("zhuhwkey02","zhuhwval02");
页面结构:<a href="3.3共享检测.html">通过a链接可以将本页面的sessionStorage存储的数据共享出去</a>
3. 本地存储的应用
1. 页面换肤效果
1. 点击之后进行将点击的颜色进行存储到本地
document.body.style.backgroundColor = "skyblue";
window.localStorage.setItem("color","skyblue");
2. 如果有值的话进行直接从本地存储进行取值
if(window.localStorage.getItem("color")){
document.body.style.backgroundColor = window.localStorage.getItem("color");
}
2. 对用户访问页面的次数进行计数
1. 整理自己经常访问的网站进行计数
2. 代码实现
<script>
// pagecount
if(window.localStorage.getItem("pagecount")){
var t = window.localStorage.getItem("pagecount");
//直接进行取值出来的值是字符串,进行转换成number类型之后再进行累加计算
console.log(typeof parseInt(t));
t = parseInt(t);
t=t+1;
window.localStorage.setItem("pagecount",t);
}else{
window.localStorage.setItem("pagecount",1);
}
</script>
#### 本地存储,存储对象的处理 ####
1. 基本数据类型直接进行字符串进行存储,key value的形式进行存储
`window.localStorage.setItem("testLS","001");`
2. 进行存储obj类型的数据,需要进行数据转换
- 代码
var obj = {
"name":"zhuhw",
"qq":"289071767"
};
- 出现的问题
直接进行存储,不转换的情况下,进行存储的数据是
objkey [object Object]
window.localStorage.setItem("objkey",obj);
console.log(window.localStorage.getItem("objkey"));//[object Object]
console.log(typeof window.localStorage.getItem("objkey"));//string
- 以上不是我们想要的数据
- 解决方法
- 进行数据类型的转换
- 存储的时候要将json字符串转换成string类型进行存储JSON.stringify()
- 进行取值的时候,进行转换成json的值 JSON.parse(),是一个object数据,直接可以对其进行对象的取值方式
- 代码
/*
1. 存储的时候要将json字符串转换成string类型进行存储JSON.stringify()
*/
var str = JSON.stringify(obj);
console.log(typeof str);//string
// objkey {"name":"zhuhw","qq":"289071767"} 存储的是json形式的字符串
window.localStorage.setItem("objkey",str);
//进行取值的时候,进行转换成json的值 JSON.parse(),是一个object数据
//直接可以对其进行对象的取值方式
var jsonobj = JSON.parse(window.localStorage.getItem("objkey"));
//zhuhw===289071767
console.log(jsonobj["name"]+"==="+jsonobj["qq"]);
3. 总结
1. 存储数据:obj--->string JSON.stringify(obj)
2. 取值数据: string--->obj JSON.parse("属性名")
## 文件读取 ##
1. 使用文件上传控件
`<input type="file">`
2. 点击按钮进行预览
- `<input type="button" value="文件读取">`
3. 页面样式
<div class="box">
<div class="show-img">
<div class="upload">
<span class="add">添加照片</span>
</div>
</div>
</div>
4. 将读取出来的文件添加到upload里面
1. 新建一个file
`var file = document.querySelector("input[type=file]");`
2. 获取file里面的值
`var data = file.files[0];`
3. 文件里的值需要读取文件的来读取
1. `var fr = new FileReader();`
2. `fr.readAsDataURL(data);`
3. 加载完成,得到result文件流,就是需要的图片的src
fr.addEventListener("load",function(){
var result = fr.result;}
4. 创建img节点,将其追加到upload节点上
var img = document.createElement("img");
img.src = result;
upload.appendChild(img);
## HTML 5 拖放 ##
页面布局
<div class="box" draggable="true"></div>
<div class="target"></div>
### 拖拽对象的事件 ###
1. 拖拽对象的事件
1. 拖拽开始 dragstart
2. 拖拽结束 dratend
3. 拖拽进行中 drag 拖拽着不放会一直触发
2. 代码
var box = document.querySelector(".box");
// 1. 拖拽开始 dragstart
box.addEventListener("dragstart",function(){
box.style.backgroundColor = "green";
});
// 3. 拖拽进行中 drag 拖拽着不放会一直触发
box.addEventListener("drag",function(){
// console.log("正在退拽中...");
})
// 2. 拖拽结束 dratend
box.addEventListener("dragend",function(){
box.style.backgroundColor = "red";
});
### 目标点的事件 ###
1. 目标对象的事件:
1. 进入目标点 dragenter
2. 离开目标点 dragleave
3. 在目标点上dragover
4. 放开目标点drop
2. 目标对象的事件
var target = document.querySelector(".target");
// 1. 进入目标点 dragenter
target.addEventListener("dragenter",function(){
console.log("拖拽对象进入目标点");
});
// 2. 离开目标点 dragleave
target.addEventListener("dragleave",function(){
console.log("拖拽对象离开目标点");
});
// 3. 在目标点上dragover
target.addEventListener("dragover",function(even){
console.log("拖拽对象经过目标点");
//配合drop事件,阻止了浏览器的默认行为,drop事件才会被触发
event.preventDefault();
});
// 4. 放开目标点drop
target.addEventListener("drop",function(even){
console.log("拖拽对象被放开");
//放开拖拽对象的时候,将拖拽对象追加到target上
target.appendChild(box);
even.stopPropagation();
});
3. 补充
最后实现把拖拽的对象目标点为整个文档
-代码
var body = document.body;
body.addEventListener("dragover",function(even){
even.preventDefault();
});
body.addEventListener("drop", function(){
//拖拽到target进行drop的时候,进行冒泡给了父级,所以要给target阻止冒泡事件
body.appendChild(box);
});
## 将外部文件拖拽到窗口中的目标位位置 ##
1. 将html5拖放和文件上传结合思路
1. 直接在外部进行拖拽到本浏览器,会将本页面路径进行覆盖
- 阻止默认事件,文档的,因为是往整个文档里面进行拖拽
- dragover 和 drop事件都要阻止默认的值
2. 目标点进行dragover 和 drop事件,
- 放下的时候,将图片追加到target上面
1. 步骤
1. 找到拖拽的对象
2. 添加到target里面
3. 从事件中找出外部传过来的数据dataTransfer files
4. 代码
<div class="target"></div>
<script>
/*
将html5拖放和文件上传结合
1. 直接在外部进行拖拽到本浏览器,会将本页面路径进行覆盖
- 阻止默认事件,文档的,因为是往整个文档里面进行拖拽
- dragover 和 drop事件都要阻止默认的值
*/
document.addEventListener("dragover",function(event){
event.preventDefault();
});
document.addEventListener("drop",function(event){
event.preventDefault();
});
/*
2. 目标点进行dragover 和 drop事件,
放下的时候,将图片追加到target上面
*/
var target = document.querySelector(".target");
target.addEventListener("dragover", function(event){
event.preventDefault();
});
target.addEventListener("drop", function(event){
/*
1. 找到拖拽的对象
2. 添加到target里面
*/
//从事件中找出外部传过来的数据dataTransfer files
console.log(event);
var file = event.dataTransfer.files[0];
var type = file.type;
console.log(type);//image/ video/
var fr = new FileReader();
console.log(fr);//readAsDataURL()
fr.readAsDataURL(file);//读取出数据流
//进行读取完的时候进行返回一个result
fr.addEventListener("load", function(){
var result = fr.result;
console.log(result);//解析成一串数据,就是我们想要的图片的src
//进行创建dom对象
if(type.indexOf("image/")>-1){
var img = document.createElement("img");
img.src = result;
target.innerHTML = "";
target.appendChild(img);
}else if(type.indexOf("video/")>-1){
var video = document.createElement("video");
video.src = result;
video.setAttribute("autoplay","autoplay");
target.innerHTML = "";
target.appendChild(video);
};
});
});
</script>
11/7/2016 4:32:20 PM
- 浏览: 102777 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
baeiou:
window.addEventListener("o ...
html5本地存储和文件上传 -
masuweng:
很适用,var a = "woai";va ...
js-----比较运算符 -
落叶留步:
3.Detached 内存有,缓存没有,数据库有(但是和 ...
028_CoreAPI_对象三种状态
发表评论
-
js-----比较运算符
2016-07-11 19:16 629<script type="text/jav ... -
sublime封装代码片段
2016-07-11 16:04 9651.sublime中tool---->new snip ... -
Bower包依赖管理
2016-06-17 15:47 687bower包依赖管理 什么是Bower? Bower是 ... -
一段js中涉及的各种js库
2016-06-15 13:11 454http://www.css88.com/doc/unde ... -
Velocity 模板引擎
2016-06-01 22:58 958[转载] http://www.ibm.com/deve ... -
js 正则表达式
2016-05-23 11:29 463转载 http://www.haorooms.com/po ... -
<!DOCTYPE html>很重要 转载的~~
2016-05-23 10:57 1239DOCTYPE的作用和用法 1作用:声明文档的解析类型(d ... -
css hack
2016-05-23 10:42 746css hack是做什么的 解决浏览器兼容性 1. ... -
html+css 小点
2016-03-29 11:39 1345疑问点: <a>标签中href=&q ... -
JavaScript中email.focus()
2016-03-23 15:36 29521.解释email.focus() 百度来的 if (v ... -
javascript中form 中onsubmit为什么会有return
2016-03-23 15:28 1485w3c过来的+百度来的 解释下: for ... -
w3c来的xhtml
2016-03-21 19:05 552XML 是一种标记化语言 ... -
Cookie, LocalStorage、SessionStorage
2016-03-16 14:21 747转载链接: http://jerryzou. ... -
JavaScript复习——02....大致的了解
2015-12-15 10:00 707四、JavaScript 语句 1.JavaScript ... -
JavaScript复习——01....大致的了解
2015-12-15 09:54 859本篇是供自己方便使用 ...
相关推荐
文件上传后,需要决定如何存储。常见的存储方式包括本地磁盘、云存储服务(如Amazon S3、Google Cloud Storage或阿里云OSS)以及数据库存储(如BLOB)。选择哪种方式取决于需求,例如性能、成本和扩展性。 六、安全...
标题中的“基于Bootstrap.3的文件上传效果, 可拖拽上传、预览的HTML5文件上传插件.zip”指的是一个使用Bootstrap 3框架和HTML5技术实现的高级文件上传功能。这个插件允许用户通过拖放操作上传文件,并且在上传前可以...
在这个场景中,我们关注的是HTML5在上传视频和图片方面的应用,特别是如何实现预览和多文件上传功能。 在HTML5中,`<input type="file">`元素得到了极大的增强,它允许用户选择本地文件进行上传,并且可以通过...
在现代Web应用中,文件上传是一项...通过分析`HtmlLargeFileUpload.sln`和`HtmlLargeFileUpload`项目文件,我们可以深入了解这个系统是如何利用HTML5特性来处理大文件上传的,以及如何通过AJAX和进度条增强用户体验。
这款临时文件上传存储分享系统,主要服务于那些需要快速、临时存储和分享文件的用户。它提供了便捷的文件上传接口,用户可以方便地将文件上传到云端,同时支持设定文件的有效期,过期后自动删除,确保数据的安全性...
在Node.js环境中,将本地文件上传到服务器是一个常见的任务,主要应用于文件共享、数据备份、内容发布等场景。本文将详细讲解如何使用Node.js实现这一功能。 首先,我们需要理解Node.js的基本概念。Node.js是一个...
5. **Web PACS集成**:在更复杂的场景中,Web应用可能会与Web PACS(Picture Archiving and Communication System)服务器进行交互,上传或下载DICOM文件,实现更全面的医学影像管理。WebPACS是基于Web技术的PACS...
在探讨HTML5文件上传中文文档时,我们将重点介绍HTML5提供的文件操作API,这是一个强大的功能集合,使得在浏览器端操作文件变得更加方便和安全。文档中提到了几个关键的概念和API,包括File API、FileReader API、...
在本文中,我们将深入探讨如何使用Java实现在本地读取图片并将其存储到数据库中,之后再通过HTML页面显示这些图片。这个过程涉及到的主要技术包括Java编程、数据库操作(特别是MySQL)以及前后端交互。 首先,我们...
标题中的“html5 + ASP +Ajax 前端...综上所述,这个技术方案提供了一种基于HTML5、ASP和Ajax的前端无刷新、多文件批量上传的实现方法,通过浏览器的原生功能和JavaScript编程实现了高效且用户体验良好的文件上传功能。
在PHP和HTML5中,文件上传是Web应用程序中常见的功能,允许用户将本地文件传输到服务器。本篇文章将深入探讨如何实现这一功能,包括使用PHP处理上传,HTML5的无刷新上传以及进度条显示。 首先,PHP作为后端语言,...
1. **HTML5 File API**:在现代浏览器中,HTML5的File API提供了处理文件上传的能力。通过`<input type="file">`元素,用户可以选择本地文件,然后通过JavaScript对这些文件进行读取、操作甚至在客户端预览,而无需...
这个"一个本地上传文件案例"项目提供了从头到尾实现文件上传功能的示例,对于学习和理解文件上传的流程及其背后的代码实现非常有帮助。开发者可以在此基础上进行自定义,以满足特定项目的需求。
总结起来,实现HTML5点击上传头像选取本地图片上传代码的关键步骤包括:创建文件输入元素,监听文件选择事件,使用FileReader预览图片,通过FormData封装文件,最后使用fetch或XMLHttpRequest发送文件到服务器。...
在IT行业中,文件上传和下载是常见的功能需求,特别是在Web应用程序中。本示例通过结合JSP、JavaScript和Oracle数据库,提供了一种实现文件在服务器和客户端之间传输的方法。下面将详细阐述这一过程中的关键技术和...
Bootstrap 3 可预览的 HTML5 文件上传插件是一种高效、用户友好的网页文件上传解决方案,它结合了流行的前端框架 Bootstrap 3 和 HTML5 的拖放与文件预览功能。这种插件允许用户在上传文件之前进行预览,提高了用户...
HTML5则引入了一系列新特性,如File API、FormData、拖放API等,使得文件上传变得更加灵活和强大。 1. **File API**: HTML5的File API允许开发者直接操作文件和文件夹,包括读取、写入和创建。用户可以选择一个或多...
在这个主题中,我们将深入探讨C#和ASP.NET如何实现文件上传和存储,并分享一个名为“文件存储与上传讲义”的PPT资源,它可能包含了对这个过程的详细讲解。 文件上传是用户通过网页将本地文件传输到服务器的过程。在...
综上所述,HTML5前端图片文件上传是一个涉及前端技术、后端处理和用户体验多方面的问题。通过合理的前端设计和后端实现,可以创建出既高效又安全的文件上传功能。"easyUpload.js"这类库就是为了解决这些问题,提供...
5. **安全性考虑**:在处理上传文件时,必须进行安全检查,例如限制文件类型、大小,防止恶意文件上传。还可以对上传的文件名进行重命名,避免覆盖现有文件或使用特殊字符引发的安全问题。 6. **进度反馈**:HTML5...