文档章节

HTML5新增API学习笔记(一)

风中一匹哈士奇
 风中一匹哈士奇
发布于 2017/09/07 10:32
字数 1384
阅读 18
收藏 1

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

HTML5新增了太多东西,并且配合上css3,现在已成网页制作的主流,好多特别炫的效果都有它来完成。这两天因为需要,就去了解了一些HTML5新增的API这块儿,这里分享一下。

一、就是网络监听接口  ononline和onoffline

在做页面的时候,APP那边会有个网络异常的提示,难道网页就没有了吗?当时就是这么想的,后来才知道HTML5已经提供了这个东西,很简单,这里贴出代码

window.addEventListener("online",function(){
    alert('网络已连接');
})
window.addEventListener("offline",function(){
    alert('网络已断开');
})

在里面进行想做的操作就行啦。

二、控制屏幕是否全屏

上次设计出了张图,里面带视频播放,但是里面播放器的样式,难到我了,最后算是做了一下兼容处理,样式就先放了放,不过这次算是知道该怎么去自定义播放器了,等之后贴出代码,这里就先说一下是否全屏的接口。

全屏操作的主要方法和属性
1.requestFullScreen();开启全屏显示;
注:不同浏览器需要添加不同的前缀;
2.cancelFullScreen();退出全屏显示;
注:退出也要加前缀,在不同浏览器下,退出全屏只能使用document来实现
3.fullScreenElement;是否是全屏显示;
  使用document判断   能力测试

下面贴出代码:

<!--HTML部分-->
<div>
    <img src="images/1.jpg" alt="">
    <input type="button" id="full" value="全屏">
    <input type="button" id="cancelFull" value="退出全屏">
    <input type="button" id="isFull" value="是否全屏">
</div>
//    js部分
    window.onload = function(){
        var div = document.querySelector('div');
        document.querySelector('#full').onclick = function(){
            if(div.requestFullScreen){
                div.requestFullScreen();
            }else if(div.webkitRequestFullScreen){
                div.webkitRequestFullScreen();
            }else if( div.mozRequestFullScreen){
                div.mozRequestFullScreen();
            }
        }
        document.querySelector('#cancelFull').onclick = function(){
            if(document.cancelFullScreen){
                document.cancelFullScreen();
            }else if(document.webkitCancelFullScreen){
                document.webkitCancelFullScreen();
            }
        }

        document.querySelector('#isFull').onclick = function(){
            if(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement){
                if(document.cancelFullScreen){
                    document.cancelFullScreen();
                }else if(document.webkitCancelFullScreen){
                    document.webkitCancelFullScreen();
                }
            }else{
                if(div.requestFullScreen){
                    div.requestFullScreen();
                }else if(div.webkitRequestFullScreen){
                    div.webkitRequestFullScreen();
                }else if( div.mozRequestFullScreen){
                    div.mozRequestFullScreen();
                }
            }
        }
    }

三、FileReader读取文件接口

这个当时是在做一个文件回显的功能,当在页面的时候选取文件,返回的只是字符串,也就是文件的名字,但是我们所需要的不仅仅是这些,这里就需要改变一些接口里的参数

<input type="file" name="myFile" id="myFile" onchange="getFileContent();">
<img id="img1" src="" alt="">
//    FileReader:读取文件内容
//    1.readAsText();读取文本文件(可以使用Txt打开的文件),返回文本字符串,默认编码是UTF-8
//      2.readAsBinaryString();读取任意类型 的文件。返回二进制字符串。这个方法不是用来读取文件展示给用户看,而是存储文件。
//      3.readAsDataURL();读取文件获取一段以data开头的字符串,这段字符串的本质就是DataURL。
//      4.abort();中断读取
function getFileContent(){
        var reader = new FileReader();
//        读取文件,获取DataURL
//        说明没有任何的返回值:void:但是读取完文件之后,他会将读取的结果存储在文件对去对象的result中
//        需要传递一个参数 binary large object:文件(图片或者其他可以嵌入到文档的类型)
//        文件存储在file表单元素的files属性中,他是一个数组
        var file = document.querySelector('#myFile').files;
        console.log(file);
        reader.readAsDataURL(file[0]);
//        获取数据
//        FileReader提供一个完整的事件模型,用来捕获读取文件是的状态
//        onabort():读取文件中断是触发
//        onerror():读取错误是触发
//        onload:文件读取成功完成是触发
//        onloadend:读取完成是触发,无论成功还是失败
//        onloadstart:开始读取时触发
//        onprogress:读取文件过程中持续触发
        reader.onload = function(){
//            console.log(reader.result);
            document.querySelector('#img1').src = reader.result;
        }
    }

四、地理位置接口

这个就不多说了,虽然HTML5提供的有一些地理定位的功能接口什么的,定位经纬度啦,海拔高度啦什么的,不过因为一些原因,大部分都会去选择用百度地图API或者高德地图API 什么的,这里就不多说使用方法了。这里说的是获取地理位置的方式,

1.IP地址获取,2.GPS,3.Wi-Fi,4.手机信号

 

五、HTML5本地存储

分为两种方式,第一种sessionStorage,第二种就是localStorage,下面分析一下区别

<span>sessionstorage的使用:存储数据到本地,容量5M左右</span><br>
    <span>1.这个数据本质是存储在当前页面的内存中</span><br>
    <span>2.他的生命周期为关闭当前页面,关闭页面,数据会自动清除</span><br>
<h2>localStorage</h2>
<p>1.存储的内容大概20M</p>
<p>不同的浏览器不能共享数据,但是在同一个浏览器的不同窗口可以共享数据</p>
<p>3.永久生效,他的数据是存储在硬盘上,并不会随着页面的或者浏览器的关闭而清除</p>

话不多说,直接上代码

sessionStorage:

<input type="text" id="userName">
<input type="button" id="setData" value="设置数据">
<input type="button" id="getData" value="获取数据">
<input type="button" id="removeData" value="删除数据">
//        sessionStorage
        document.querySelector('#setData').onclick = function(){
            var name = document.querySelector('#userName').value;
            window.sessionStorage.setItem('userName',name);
        }
        document.querySelector('#getData').onclick = function(){
            var name = window.sessionStorage.getItem('userName');
            alert(name);
        }
        document.querySelector('#removeData').onclick = function(){
            window.sessionStorage.removeItem('userName');
        }

localStorage:

<input type="text" id="txt">
<input type="button" id="setlocalData" value="设置数据">
<input type="button" id="getlocalData" value="获取数据">
<input type="button" id="removelocalData" value="删除数据">
//        localStorage
        document.querySelector('#setlocalData').onclick = function(){
            var name = document.querySelector('#txt').value;
            window.localStorage.setItem("txt",name);
        }
        document.querySelector('#getlocalData').onclick = function(){
            var name = window.localStorage.getItem('txt');
            alert(name);
        }
        document.querySelector('#removelocalData').onclick = function(){
            window.localStorage.removeItem('txt');
        }

这里可以自己动手试一下,还是挺好玩儿的,浏览器本身的缓存也是个问题,有时候需要强制刷新,Ctrl+F5

 

© 著作权归作者所有

风中一匹哈士奇
粉丝 4
博文 8
码字总数 7492
作品 0
昌平
程序员
私信 提问
加载中

评论(0)

Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月28日-2月3日)

Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月28日-2月3日) 本周Windows 8开发学习资源更新 本周Silverlight学习资源更新 本周Windows Phone开发学习资源更新 本周WPF学习资源推荐 本周...

冷秋寒
2018/06/29
0
0
好程序员技术分享html5和JavaScript的区别

好程序员技术分享html5和JavaScript的区别,HTML5广义上讲是前端开发学科的代名词,包含HTML5、CSS3及JavaScript三个重要的部分,是运行在浏览器上应用的统称。如PC端网站、管理系统、手机网...

好程序员IT
2019/04/26
17
0
Javascript高级编程学习笔记(48)—— HTML5

HTML变动最大的版本应该就是HTML5了,这里就介绍一些 HTML5新增的DOM相关的API 与类相关的扩充 HTML4在普及后有一个十分重要的变化,即class属性使用的场景越来越多 所以HTML5新增了许多API...

osc_51w4wn2j
2019/01/30
2
0
localStorage 和 sessionStorage 简介

导读 一、 简述 sessionStorage 和 sessionStorage 是 HTML5 新增的两个特性,这两个特性主要是用来作为会话存储和本地存储来使用的,解决了 cookie 存储空间不足的问题; sessionStorage 属...

qianyin925
2019/05/05
0
0
HTML5学习笔记之History API

这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例,让大家一步一步的体会"h5"能够做什么,以及在实际项目中如何去合理的运用达到使用自如,完美驾驭O(∩_...

roucheng
2016/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

队列关系图

Joker上上签
28分钟前
24
0
解决LeanCloud流控问题以及配置DaoVoice

最近hexo博客的评论系统valine遇上一点问题,本篇就来记录下我的解决方法。 1 LeanCloud流控问题 如果用valine评论系统的同学最近打开valine部署的日志可能会发现诸如此类的信息。 事实上我在...

胖胖雕
46分钟前
17
0
深源恒际二代信用报告OCR产品入选百度云市场优选商城

本文作者:cloudmarket 近日,深源恒际二代信用报告OCR产品入选百度云市场优选商城,用户可通过百度云市场优选商城入口0元试用相关产品。 百度云市场优选商城是从云市场合作伙伴中精选而出,...

百度开发者中心
昨天
8
0
什么是反射,为什么有用? - What is reflection and why is it useful?

问题: What is reflection, and why is it useful? 什么是反射,为什么有用? I'm particularly interested in Java, but I assume the principles are the same in any language. 我对Jav......

javail
今天
17
0
URL 中文链接 编码错误 完美解决

直接上代码 str = "%25E4%25B8%25AD%25E6%2596%2587";console.log(str);str =decodeURIComponent(decodeURIComponent(str));console.log(str); 输出结果 %25E4%25B8%25AD%25E6%2596%25......

放只虎归个山
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部