`
阅读更多

 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 


1
4
分享到:
评论
1 楼 baeiou 2016-11-10  
window.addEventListener("offline",function(){
这个对于现在的我有用

相关推荐

    Web文件存储上传.

    文件上传后,需要决定如何存储。常见的存储方式包括本地磁盘、云存储服务(如Amazon S3、Google Cloud Storage或阿里云OSS)以及数据库存储(如BLOB)。选择哪种方式取决于需求,例如性能、成本和扩展性。 六、安全...

    基于bootstrap.3的文件上传效果, 可拖拽上传、预览的HTML5文件上传插件.zip

    标题中的“基于Bootstrap.3的文件上传效果, 可拖拽上传、预览的HTML5文件上传插件.zip”指的是一个使用Bootstrap 3框架和HTML5技术实现的高级文件上传功能。这个插件允许用户通过拖放操作上传文件,并且在上传前可以...

    2023最新临时文件上传存储分享系统 临时文件网盘系统源码

    这款临时文件上传存储分享系统,主要服务于那些需要快速、临时存储和分享文件的用户。它提供了便捷的文件上传接口,用户可以方便地将文件上传到云端,同时支持设定文件的有效期,过期后自动删除,确保数据的安全性...

    html5上传视频和图片 可预览上传 手机端HTML5+js 多文件上传

    在这个场景中,我们关注的是HTML5在上传视频和图片方面的应用,特别是如何实现预览和多文件上传功能。 在HTML5中,`&lt;input type="file"&gt;`元素得到了极大的增强,它允许用户选择本地文件进行上传,并且可以通过...

    基于html5的文件上传

    在现代Web应用中,文件上传是一项...通过分析`HtmlLargeFileUpload.sln`和`HtmlLargeFileUpload`项目文件,我们可以深入了解这个系统是如何利用HTML5特性来处理大文件上传的,以及如何通过AJAX和进度条增强用户体验。

    NodeJS本地上传文件至服务器

    在Node.js环境中,将本地文件上传到服务器是一个常见的任务,主要应用于文件共享、数据备份、内容发布等场景。本文将详细讲解如何使用Node.js实现这一功能。 首先,我们需要理解Node.js的基本概念。Node.js是一个...

    java实现本地读取图片存储到数据库中并在html网页显示

    在本文中,我们将深入探讨如何使用Java实现在本地读取图片并将其存储到数据库中,之后再通过HTML页面显示这些图片。这个过程涉及到的主要技术包括Java编程、数据库操作(特别是MySQL)以及前后端交互。 首先,我们...

    html5 + ASP +Ajax 前端免刷新多文件批量上传 免组件

    标题中的“html5 + ASP +Ajax 前端...综上所述,这个技术方案提供了一种基于HTML5、ASP和Ajax的前端无刷新、多文件批量上传的实现方法,通过浏览器的原生功能和JavaScript编程实现了高效且用户体验良好的文件上传功能。

    php html5 文件上传

    在PHP和HTML5中,文件上传是Web应用程序中常见的功能,允许用户将本地文件传输到服务器。本篇文章将深入探讨如何实现这一功能,包括使用PHP处理上传,HTML5的无刷新上传以及进度条显示。 首先,PHP作为后端语言,...

    文件上传到本地

    1. **HTML5 File API**:在现代浏览器中,HTML5的File API提供了处理文件上传的能力。通过`&lt;input type="file"&gt;`元素,用户可以选择本地文件,然后通过JavaScript对这些文件进行读取、操作甚至在客户端预览,而无需...

    一个本地上传文件案例

    这个"一个本地上传文件案例"项目提供了从头到尾实现文件上传功能的示例,对于学习和理解文件上传的流程及其背后的代码实现非常有帮助。开发者可以在此基础上进行自定义,以满足特定项目的需求。

    html5点击上传头像选取本地图片上传代码

    总结起来,实现HTML5点击上传头像选取本地图片上传代码的关键步骤包括:创建文件输入元素,监听文件选择事件,使用FileReader预览图片,通过FormData封装文件,最后使用fetch或XMLHttpRequest发送文件到服务器。...

    jsp+js+oracle 实现文件上传数据库,下载到本地

    在IT行业中,文件上传和下载是常见的功能需求,特别是在Web应用程序中。本示例通过结合JSP、JavaScript和Oracle数据库,提供了一种实现文件在服务器和客户端之间传输的方法。下面将详细阐述这一过程中的关键技术和...

    文件上传和下载文件上传和下载文件上传和下载

    文件上传和下载是Web应用程序中的核心功能之一,无论是用户向服务器提交个人资料、分享文档,还是从服务器获取资源,如软件更新、电子书籍等,都离不开这一操作。在这个过程中,前端与后端的交互以及数据的安全传输...

    基于Bootstrup 3可预览的HTML5文件上传插件

    Bootstrap 3 可预览的 HTML5 文件上传插件是一种高效、用户友好的网页文件上传解决方案,它结合了流行的前端框架 Bootstrap 3 和 HTML5 的拖放与文件预览功能。这种插件允许用户在上传文件之前进行预览,提高了用户...

    html5 上传文件

    HTML5则引入了一系列新特性,如File API、FormData、拖放API等,使得文件上传变得更加灵活和强大。 1. **File API**: HTML5的File API允许开发者直接操作文件和文件夹,包括读取、写入和创建。用户可以选择一个或多...

    c#,asp.net,网站开发,net,文件上传和存储

    在这个主题中,我们将深入探讨C#和ASP.NET如何实现文件上传和存储,并分享一个名为“文件存储与上传讲义”的PPT资源,它可能包含了对这个过程的详细讲解。 文件上传是用户通过网页将本地文件传输到服务器的过程。在...

    Html5前端图片文件上传

    综上所述,HTML5前端图片文件上传是一个涉及前端技术、后端处理和用户体验多方面的问题。通过合理的前端设计和后端实现,可以创建出既高效又安全的文件上传功能。"easyUpload.js"这类库就是为了解决这些问题,提供...

    html5文件和图片上传实例java版

    5. **安全性考虑**:在处理上传文件时,必须进行安全检查,例如限制文件类型、大小,防止恶意文件上传。还可以对上传的文件名进行重命名,避免覆盖现有文件或使用特殊字符引发的安全问题。 6. **进度反馈**:HTML5...

    html5多文件上传前后台

    在提供的"html5uploader"压缩包文件中,可能包含了实现HTML5多文件上传功能的前端脚本和后台控制类。这些资源可能包括HTML模板、JavaScript代码、CSS样式以及服务器端的处理脚本。使用这些资源,开发者可以快速集成...

Global site tag (gtag.js) - Google Analytics