美文网首页
HTML5 新特性

HTML5 新特性

作者: 欢欣的膜笛 | 来源:发表于2020-03-07 17:32 被阅读0次

<datalist> 标签,兼容性不好

  • 定义选项列表,需与 input 元素配合使用,来定义 input 可能的值。datalist及其选项不会被显示出来,它仅仅是合法的输入值列表。
  • 所有主流浏览器都支持 <datalist> 标签,除了 Internet ExplorerSafari
      <input id="myCar" list="cars" />
      <datalist id="cars">
          <option value="BMW">
          <option value="Ford">
          <option value="Volvo">
      </datalist>
    

classList 属性,兼容性不好

  • 返回元素的类名,作为 DOMTokenList 对象(DOMTokenList接口表示一组空格分隔的标记tokens)。用于在元素中添加,移除及切换 CSS 类。
  • classList 属性是只读的,但可以使用 add()remove() 方法修改它。
  • Properties
    // length:返回类列表中类的数量,该属性是只读的
    var len = document.getElementById('myDIV').classList.length
    
  • 方法:
    // add(class1, class2, ...):在元素中添加一个或多个类名。如果指定的类名已存在,则不会添加
    document.getElementById("myDIV").classList.add("mystyle", "anotherClass", "thirdClass")
    
    // contains(class):返回布尔值,判断指定的类名是否存在
    var flag = document.getElementById("myDIV").classList.contains("mystyle")
    
    // item(index):返回元素中索引值对应的类名。索引值从 0 开始。如果索引值在区间范围外则返回 null
    var className = document.getElementById("myDIV").classList.item(0)
    
    // remove(class1, class2, ...):移除元素中一个或多个类名。移除不存在的类名,不会报错
    document.getElementById("myDIV").classList.remove("mystyle", "anotherClass", "thirdClass")
    
    // toggle(class, true|false):在元素中切换类名。
    // 第一个参数为要在元素中移除的类名,并返回 false。如果该类名不存在则会在元素中添加类名,并返回 true。
    // 第二个是可选参数,布尔值,用于设置元素是否强制添加(true)或移除(false)类,不管该类名是否存在。
    document.getElementById("myDIV").classList.toggle("newClassName")
    

Dataset 存储

<div id="myDIV" data-a="a" data-b="b" data-c="c" data-d="d" data-a-b="a-b">myDIV</div>
  • 利用 getAttributesetAttribute 存取 dataset
    // get 
    var a = document.getElementById("myDIV").getAttribute("data-a")
    // set or add
    document.getElementById("myDIV").setAttribute("data-e", "e")
    
  • 利用 dataset API 存取 dataset
    // get
    var a = document.getElementById("myDIV").dataset.a
    // set or add
    document.getElementById("myDIV").dataset.f = "f"
    // 如果涉及到连字符"-",可以采取驼峰化的方法来存取
    var ab = document.getElementById("myDIV").dataset.aB
    

HTML <html> manifest 属性

带有缓存 manifestHTML 文档(用于离线浏览)

<html manifest="test.appcache">

FileReader() 读取文件

  • FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用FileBlob对象指定要读取的文件或数据。

  • 属性:
    FileReader.error:只读,返回读取文件时的错误信息,表示在读取文件时发生的错误
    FileReader.readyState:只读,提供 FileReader 读取操作时的当前状态

    0:EMPTY,还没有加载任何数据
    1:LOADING,数据正在被加载
    2:DONE,已完成全部的读取请求
    

    FileReader.result:只读,返回文件的内容。只有在读取操作完成后,此属性才有效,返回的数据的格式取决于是使用哪种读取方法来执行读取操作的。

  • 事件处理:
    FileReader.onerror:处理error事件,该事件在读取操作发生错误时触发
    FileReader.onloadstart:处理loadstart事件,该事件在读取操作开始时触发
    FileReader.onloadend:处理loadend事件,该事件在读取操作结束时(成功或失败)触发
    FileReader.onload:处理load事件,该事件在读取操作完成时触发
    FileReader.onprogress:处理load事件,该事件在读取操作完成时触发
    FileReader.onabort:处理abort事件,该事件在读取操作被中断时触发

  • 方法:
    FileReader.abort():中止读取操作。在返回时,readyState属性为DONE
    FileReader.readAsArrayBuffer():开始读取指定的Blob中的内容, 一旦完成, result属性中保存的将是被读取文件的ArrayBuffer数据对象
    FileReader.readAsBinaryString():开始读取指定的Blob中的内容。一旦完成,result属性中将包含所读取文件的原始二进制数据
    FileReader.readAsDataURL():开始读取指定的Blob中的内容。一旦完成,result属性中将包含一个data: URL格式的Base64字符串以表示所读取文件的内容
    FileReader.readAsText():开始读取指定的Blob中的内容。一旦完成,result属性中将包含一个字符串以表示所读取的文件内容

网络状态

  • window.navigator.onLine:返回浏览器的联网状态(truefalse
  • window.onOnline:监听事件,来获取浏览器联网状态的改变情况
  • window.onOffline:监听事件,来获取浏览器联网状态的改变情况

地理定位

        window.navigator.geolocation.getCurrentPosition(function(position){
            // 位置对象
            console.log(position)
            // 纬度
            console.log(position.coords.latitude)
            // 经度
            console.log(position.coords.longitude)
        }, function(error){
            console.log(error)
        })

本地存储

  • cookie
    1. 单条存储有大小限制 4KB,只能使用文本
    2. 数量限制(一般浏览器,限制大概在50条左右)
    3. 读取有域名限制 不可跨域读取,只能由来自 写入cookie的 同一域名 的网页可进行读取
    4. 时效限制expires,每个cookie都有时效,最短的有效期是,会话级别:就是当浏览器关闭,那么cookie立即销毁
    5. cookiehttp/https协议下的技术,不支持本地file文件对cookie操作
    document.cookie="user=zhang:name=li;age=45"
    
  • localStorage:生命周期为关闭浏览器窗口,在同一个窗口下数据可以共享,容量约5M
    window.localStorage.setItem('name', '小明2')
    var name = window.localStorage.getItem('name')
    window.localStorage.removeItem('name')
    // 清空所有localStorage
    window.localStorage.clear()
    
  • sessionStorage:永久生效,除非手动删除,可以多窗口共享,容量约20M
    window.sessionStorage.setItem('name', '小明3')
    var name = window.sessionStorage.getItem('name')
    window.sessionStorage.removeItem('name')
    // 清空所有sessionStorage
    window.sessionStorage.clear()
    

canvas

相关文章

网友评论

      本文标题:HTML5 新特性

      本文链接:https://www.haomeiwen.com/subject/bhzqdhtx.html