HTML5新的API

    xiaoxiao2021-03-25  61

    Drag&Drop API (拖放)                  使用dataTransfer 接口来支持拖放数据存储, 它的使用方式一般为 event.dataTransfer。                  设置  :                        dataTransfer.effectAllowed[=value]。该属性返回拖曳对象允许的拖曳时的反馈效果   【放在可移动元素start事件上】                        dataTransfer.dropEffect[=value]。该属性返回已设置的拖放时反馈效果。       【放在目标容器over事件上】                        dataTransfer.items。返回一个关于拖曳数据的DataTransferItemList对象。                         dataTransfer.setDragImage(element, x, y)。 指定拖曳元素时随鼠标移动的图片,x、y分别是图片相对于鼠标的横坐标和纵坐标。                        dataTransfer.addElement(element)。将元素添加到被拖曳的列表里。如果你想让某个元素跟随被拖曳元素一同被拖曳,可以使用这个方法。                        dataTransfer.types。返回在dragstart事件触发时为元素存储数据的格式。如果是系统文件的拖曳,则返回files。                         dataTransfer.setData(format, data)。 为元素添加数据,在dragstart事件触发时可以用它为被拖曳元素存储数据。数据格式一般有两种:                              text/plain(设置format为字符串text即可,主要用于文本数据)和text/uri-list(设置format为字符串url即可,主要用于url)。                         data=dataTransfer.getData(format)。 返回存储的数据。如果数据不存在,则返回空字符串。                        dataTransfer.clearData([format])。删除指定格式的数据。如果不指定格式,则删除所有数据。                        dataTransfer.files。 如果是拖曳系统文件,返回正在被拖曳的文件列表对象。可以通过它获得所拖曳的文件数据。    【拖拽上传】                         代码片段 1 效果预览 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <! DOCTYPE   html > < html >   < head >        < meta   http-equiv = "content-type"   charset = "utf-8"    />        < meta   name = "generator"   content = "editplus"   />        < meta   name = "author"   content = ""   />        < meta   name = "keywords"   content = ""   />        < meta   name = "description"   content = ""   />        < title >  fileAPI( </ title >        < style   type = "text/css" >               #box {                                   /*  */                    border2 px  gray  dotted;                    width171 px;                    height158 px;                    line-height158 px;                    text-aligncenter;                   mask-image:  url( mask.png );          /*  */                   -webkit-mask-image:  url( mask.png )/* MaskWebKitWebKitMask */                   mask-clip:  content;                 /* */                   -webkit-mask-clip:  content;         /* MaskWebKitWebKitMask */               }               #box .hover {                             /*  */                    border2 px  olive  solid;               }               #box .drop {                              /* */                    border2 px  blue  solid              }       </ style >   </ head >   < body >        < div   id = "box" > </ div >       < script   type = "text/javascript" >            History  API(历史记录)                  提供了两个新方法pushState()和replaceState(),它们允许我们添加和改变当前浏览器的地址。                  设置:                        history.pushState({username: "html5"}, "user account", "user.html");  用于向history对象添加当前页面的记录,并且改变浏览器地址栏的URL                        history.replaceState({username: "html5" }, "user account", "user.html"); 类似于pushState(),只是将当前页面状态替换为新的状态                                            值:           state对象                  标题           可选参数目标URL                         代码片段 2 效果预览 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <! DOCTYPE   html > < html >   < head >        < meta   http-equiv = "content-type"   content = "text/html;charset=utf-8"    />        < meta   name = "generator"   content = "editplus"   />        < meta   name = "author"   content = ""   />        < meta   name = "keywords"   content = ""   />        < meta   name = "description"   content = ""   />        < title >  History API  </ title >        < style   type = "text/css" >             * { margin: 0; padding: 0; }               div { width: 100 px; height: 50 px; text-align: center; line-height: 50 px; color: #fff; }               #click-item { background: #ffcc00; }               #result-item { background: #ff9900; }       </ style >   </ head >   < body >        < div   id = "click-item" > </ div >       < div   id = "result-item" > </ div >       < script   type = "text/javascript" >               var  clickItem  =  document . getElementById ( 'click-item' ) ;               var  resultItem  =  document . getElementById ( 'result-item' ) ;               clickItem . onclick  =  function ( ) {                    resultItem . innerHTML  =  'clicked!' ;                    history . pushState ({ note :  'set result' } ,  '' ,  'result.html' ) ;               }       </ script >   </ body > </ html >            Notification API (桌面通知)                  可以使用webkitNotifications.checkPermission这个方法来判断当前Notification的许可状态。Notification的状态一共有3种:                        0表示PERMISSION_ALLOWED(允许)。                        1表示PERMISSION_NOT_ALLOWED(未作许可授权)。                        2表示PERMISSION_DENIED(拒绝)。                  一个 小例子 ,请使用Chrome浏览器查看。            Communication API (跨域通信)                  以往的浏览器,跨域存在安全问题(CSRF攻击,Cross-Site Request Forgery跨站请求伪造),现在使用Communication API可以很好的避免这个问题。                  发展:                         起初,使用iframe或Frameset直接调用某个页面;                         演化,①以Web Service③和各种SDK④下的API为代表的主动服务模式。它们的代表有新浪微博SDK的API接口、腾讯系列SDK的API接口等各种专业服务提供商。                                 ②以iframe和<script>为代表的被动服务模式。它们的代表有CNZZ站长统计、天气预报和其他各类被iframe索引的资源。                                 ③后来被大家广为接受的一种方案,即Ajax方式。出于安全考虑,不允许使用跨域。                              WebSocket API                  提供了全双工通信方式,代表了一个巨大的进步,我们从此可以在Web应用中实现实时的数据传输和获取。                  支持双向、双工通信。可以实现实现微博新消息通知、邮件推送、实时游戏和聊天等功能。            Web Worker                    简单 来说,就是通过JavaScript创建一个后台进程(或者叫工作者进程),执行一些特殊的任务(比如耗时比较长的数据处理),并且提供主进程和新进程之间数据交换的                  接口:postMessage和onmessage。它起到互不阻塞执行的效果,避免了传统的JavaScript执行长时间操作时界面无响应的弊端,提高了性能及用户体验。                              Storage API                  主要涉及localStorage API、sessionStorage API、applicationCacheAPI(离线存储)和服务器端 Manifest 文件等概念。            Canvas和WebGL            Device API                  可能是所有的HTML相关API中最大胆、最有应用前景、最有技术突破的一个草案:,使HTML5 标签可以直接调用类似摄像头、电源、系统、文件、网络等各种重要的                  但是以前从未实现的功能。                  子API:                          Geolocation API( 地理位置 API)                          File API来帮助我们在Web页面中访问本地文件,它可以在Web应用中展现文件,或者选择并读取文件。                          Media Capture API增强了HTML表单,提供了对音频、图像和视频进行采集的功能。PC上还未实现,欧朋手机浏览器实现HTML5标签打开摄像头。                          Contact API主要应用在移动设备上,提供对用户通用通讯录的访问,包含如下关键接口。                                 Contacts接口:提供了访问用户通用通讯录的方法。                                 Contact接口:提供了读操作来获取单个联系人的信息                          Calendar API                                 与Contact API非常类似,提供了对用户通用日历的存取方式,主要应用在移动设备上。                                 API定义了一个高级的接口来访问日历信息,例如事件、提醒、警告或其他日历信息。                          System Information API用于为Web应用提供访问系统各种运行时属性的方式,主要也应用在移动设备上。(都还未有浏览器实现)                                 电源( 电量                                 CPU(类型、规格和当前系统负载信息)                                 温度                                 网络(WIFI?3G/4G?信号强度?)                                 传感器(侦测外部环境)                                 多媒体编解码(设备是否支持XX格式)                                 存储设备(硬盘?闪存卡?性能?)                                 输出设备(屏幕、声音播放器... ...)                                 输入设备(鼠标、键盘、摄像头... ...)                          Messaging API                                 定义了一个简单的API来发送和接收电子邮件、短信和彩信,主要应用在移动设备上。许多现代的浏览器已经支持mailto(非常常见)、tel(常见)                                 和sms(不常见)协议。MessagingAPI补充了sms:(短信)、mms:(彩信)和mailto:(电子邮件)等URI类型,以提供以下功能:                                       为消息添加附件的能力。                                       发送一条消息成功或者失败后的回调方法。                                -----------------------------------------------                          5种实用API :                               页面全屏                               焦点位置                               拍摄照片                               电量变化                               资源预加载
    转载请注明原文地址: https://ju.6miu.com/read-36710.html

    最新回复(0)