整理了Javascript的常见API一部分有趣的实验性API还有HTML 5 API并添加了简要说明,希望对小伙伴们有帮助
Javascript API篇
一、节点
1.1 节点属性
Node 是一个接口,各种类型的 DOM API 对象会从这个接口继承。它允许我们使用相似的方式对待这些不同类型的对象;比如,
继承同一组方法,或者用同样的方式测试。
Node.nodeName //返回节点名称,只读
Node.nodeType //返回节点类型的常数值,只读
Node.nodeValue //返回Text或Comment节点的文本值,只读
Node.textContent //返回当前节点和它的所有后代节点的文本内容,可读写
Node.baseURI //返回当前网页的绝对路径
Node.ownerDocument //返回当前节点所在的顶层文档对象,即document
Node.nextSibling //返回紧跟在当前节点后面的第一个兄弟节点
Node.previousSibling //返回当前节点前面的、距离最近的一个兄弟节点
Node.parentNode //返回当前节点的父节点
Node.parentElement //返回当前节点的父Element节点
Node.childNodes //返回当前节点的所有子节点
Node.firstChild //返回当前节点的第一个子节点
Node.lastChild //返回当前节点的最后一个子节点
//parentNode接口
Node.children //返回指定节点的所有Element子节点
Node.firstElementChild //返回当前节点的第一个Element子节点
Node.lastElementChild //返回当前节点的最后一个Element子节点
Node.childElementCount //返回当前节点所有Element子节点的数目。
1.2 操作
Node.appendChild(node) //向节点添加最后一个子节点
Node.hasChildNodes() //返回布尔值,表示当前节点是否有子节点
Node.cloneNode(true); // 默认为false(克隆节点), true(克隆节点及其属性,以及后代)
Node.insertBefore(newNode,oldNode) // 在指定子节点之前插入新的子节点
Node.removeChild(node) //删除节点,在要删除节点的父节点上操作
Node.replaceChild(newChild,oldChild) //替换节点
Node.contains(node) //返回一个布尔值,表示参数节点是否为当前节点的后代节点。
Node.compareDocumentPosition(node) //返回一个7个比特位的二进制值,表示参数节点和当前节点的关系
Node.isEqualNode(noe) //返回布尔值,用于检查两个节点是否相等。所谓相等的节点,指的是两个节点的类型相同、属性相同、子节点相同。
Node.normalize() //用于清理当前节点内部的所有Text节点。它会去除空的文本节点,并且将毗邻的文本节点合并成一个。
ChildNode 混合了所有(拥有父对象) Node 对象包含的公共方法和属性。其由 Element、DocumentType 和 CharacterData 对象实现。实验特性 兼容性参见:https://developer.mozilla.org/zh-CN/docs/Web/API/ChildNode
//ChildNode接口
Node.remove() //将 ChildNode 从其父节点的子节点列表中移除。
Node.before() //在其父节点的子节点列表中插入一些 Node 或 DOMString 对象。插入位置为 ChildNode 之前。DOMString 对象会被以 Text 的形式插入。
Node.after() //在其父节点的子节点列表中插入一些Node 或 DOMString 对象。插入位置为 ChildNode 之后。DOMString 对象会被以 Text 的形式插入。
Node.replaceWith() //使用一组 Node 或 DOMString 对象替换 ChildNode。DOMString 对象会以 Text 的形式插入。
1.3 Document节点
Document 接口表示任何在浏览器中载入的网页,并作为网页内容的入口,也就是DOM 树。DOM 树包含了像
、这样的元素,以及大量其他元素。它向网页文档本身提供了全局操作功能,能解决如何获取页面的 URL
,如何在文档中创建一个新的元素这样的问题。document api
Document 接口描述了任何类型的文档的通用属性与方法。根据不同的文档类型(例如HTML、XML、SVG,...),还能使用更多
API:使用 "text/html" 作为内容类型(content type)的 HTML 文档,还实现了 HTMLDocument
接口,而 XML 和 SVG 文档则(额外)实现了 XMLDocument 接口。1.3.1 Document节点的属性
document.doctype // document.documentElement //返回当前文档的根节点 document.defaultView //返回document对象所在的window对象 document.body //返回当前文档的<body>节点 document.head //返回当前文档的<head>节点 document.activeElement //返回当前文档中获得焦点的那个元素。 //节点集合属性 document.links //返回当前文档的所有a元素 document.forms //返回页面中所有表单元素 document.images //返回页面中所有图片元素 document.embeds //返回网页中所有嵌入对象 document.scripts //返回当前文档的所有脚本 document.styleSheets //返回当前网页的所有样式表 //文档信息属性 document.documentURI //表示当前文档的网址 document.URL //返回当前文档的网址 document.domain //返回当前文档的域名 document.lastModified //返回当前文档最后修改的时间戳 document.location //返回location对象,提供当前文档的URL信息 document.referrer //返回当前文档的访问来源 document.title //返回当前文档的标题 document.characterSet属性返回渲染当前文档的字符集,比如UTF-8、ISO-8859-1。 document.readyState //返回当前文档的状态 document.designMode //控制当前文档是否可编辑,可读写 document.compatMode //返回浏览器处理文档的模式 document.cookie //用来操作Cookie
1.3.2 Document节点的方法
(1)读写方法
document.open() //用于新建并打开一个文档 document.close() //不安比open方法所新建的文档 document.write() //用于向当前文档写入内容 document.writeIn() //用于向当前文档写入内容,尾部添加换行符。
(2)查找节点
document.querySelector(selectors) //接受一个CSS选择器作为参数,返回第一个匹配该选择器的元素节点。 document.querySelectorAll(selectors) //接受一个CSS选择器作为参数,返回所有匹配该选择器的元素节点。 document.getElementsByTagName(tagName) //返回所有指定HTML标签的元素 document.getElementsByClassName(className) //返回包括了所有class名字符合指定条件的元素 document.getElementsByName(name) //用于选择拥有name属性的HTML元素(比如<form>、<radio>、<img>、<frame>、<embed>和<object>等) document.getElementById(id) //返回匹配指定id属性的元素节点。 document.elementFromPoint(x,y) //返回位于页面指定位置最上层的Element子节点。
(3)生成节点
document.createElement(tagName) //用来生成HTML元素节点。 document.createTextNode(text) //用来生成文本节点 document.createAttribute(name) //生成一个新的属性对象节点,并返回它。 document.createDocumentFragment() //生成一个DocumentFragment对象
(4)事件方法
document.createEvent(type) //生成一个事件对象,该对象能被element.dispatchEvent()方法使用 document.addEventListener(type,listener,capture) //注册事件 document.removeEventListener(type,listener,capture) //注销事件 document.dispatchEvent(event) //触发事件
(5)其他
document.hasFocus() //返回一个布尔值,表示当前文档之中是否有元素被激活或获得焦点。 document.adoptNode(externalNode) //将某个节点,从其原来所在的文档移除,插入当前文档,并返回插入后的新节点。 document.importNode(externalNode, deep) //从外部文档拷贝指定节点,插入当前文档。
1.4 Element节点
Element 是一个通用性非常强的基类,所有 Document 对象下的对象都继承自它。这个接口描述了所有相同种类的元素所普遍具有的方法和属性。一些接口继承自 Element 并且增加了一些额外功能的接口描述了具体的行为。例如, HTMLElement 接口是所有 HTML 元素的基本接口,而 SVGElement 接口是所有 SVG 元素的基础。大多数功能是在这个类的更深层级(hierarchy)的接口中被进一步制定的。
在 Web 平台的领域以外的语言,比如 XUL,通过 XULElement 接口,同样也实现了 Element 接口。
1.4.1 Element节点的属性
(1)特性属性
Element.attributes //返回当前元素节点的所有属性节点 Element.id //返回指定元素的id属性,可读写 Element.tagName //返回指定元素的大写标签名 Element.innerHTML //返回该元素包含的HTML代码,可读写 Element.outerHTML //返回指定元素节点的所有HTML代码,包括它自身和包含的的所有子元素,可读写 Element.className //返回当前元素的class属性,可读写 Element.classList //返回当前元素节点的所有class集合 Element.dataset //返回元素节点中所有的data-*属性。
(2)尺寸属性
Element.clientHeight //返回元素节点可见部分的高度 Element.clientWidth //返回元素节点可见部分的宽度 Element.clientLeft //返回元素节点左边框的宽度 Element.clientTop //返回元素节点顶部边框的宽度 Element.scrollHeight //返回元素节点的总高度 Element.scrollWidth //返回元素节点的总宽度 Element.scrollLeft //返回元素节点的水平滚动条向右滚动的像素数值,通过设置这个属性可以改变元素的滚动位置 Element.scrollTop //返回元素节点的垂直滚动向下滚动的像素数值 Element.offsetHeight //返回元素的垂直高度(包含border,padding) Element.offsetWidth //返回元素的水平宽度(包含border,padding) Element.offsetLeft //返回当前元素左上角相对于Element.offsetParent节点的垂直偏移 Element.offsetTop //返回水平位移 Element.style //返回元素节点的行内样式
(3)节点相关属性
Element.children //包括当前元素节点的所有子元素 Element.childElementCount //返回当前元素节点包含的子HTML元素节点的个数 Element.firstElementChild //返回当前节点的第一个Element子节点 Element.lastElementChild //返回当前节点的最后一个Element子节点 Element.nextElementSibling //返回当前元素节点的下一个兄弟HTML元素节点 Element.previousElementSibling //返回当前元素节点的前一个兄弟HTML节点 Element.offsetParent //返回当前元素节点的最靠近的、并且CSS的position属性不等于static的父元素。
1.4.2 Element节点的方法
(1)位置方法
getBoundingClientRect() // getBoundingClientRect返回一个对象,包含top,left,right,bottom,width,height // width、height 元素自身宽高 // top 元素上外边界距窗口最上面的距离 // right 元素右外边界距窗口最上面的距离 // bottom 元素下外边界距窗口最上面的距离 // left 元素左外边界距窗口最上面的距离 // width 元素自身宽(包含border,padding) // height 元素自身高(包含border,padding) getClientRects() //返回当前元素在页面上形参的所有矩形。 // 元素在页面上的偏移量 var rect = el.getBoundingClientRect() return { top: rect.top + document.body.scrollTop, left: rect.left + document.body.scrollLeft }
(2)属性方法
Element.getAttribute():读取指定属性 Element.setAttribute():设置指定属性 Element.hasAttribute():返回一个布尔值,表示当前元素节点是否有指定的属性 Element.removeAttribute():移除指定属性
(3)查找方法
Element.querySelector() Element.querySelectorAll() Element.getElementsByTagName() Element.getElementsByClassName()
(4)事件方法
Element.addEventListener():添加事件的回调函数 Element.removeEventListener():移除事件监听函数 Element.dispatchEvent():触发事件 //ie8 Element.attachEvent(oneventName,listener) Element.detachEvent(oneventName,listener) // event对象 var event = window.event||event; // 事件的目标节点 var target = event.target || event.srcElement; // 事件代理 ul.addEventListener('click', function(event) { if (event.target.tagName.toLowerCase() === 'li') { console.log(event.target.innerHTML) } });
(5)其他
Element.scrollIntoView() //滚动当前元素,进入浏览器的可见区域 //解析HTML字符串,然后将生成的节点插入DOM树的指定位置。 Element.insertAdjacentHTML(where, htmlString); Element.insertAdjacentHTML('beforeBegin', htmlString); // 在该元素前插入 Element.insertAdjacentHTML('afterBegin', htmlString); // 在该元素第一个子元素前插入 Element.insertAdjacentHTML('beforeEnd', htmlString); // 在该元素最后一个子元素后面插入 Element.insertAdjacentHTML('afterEnd', htmlString); // 在该元素后插入 Element.remove() //用于将当前元素节点从DOM中移除 Element.focus() //用于将当前页面的焦点,转移到指定元素上
二、CSS操作
(1)类名操作
//ie8以下 Element.className //获取元素节点的类名 Element.className += ' ' + newClassName //新增一个类名 //判断是否有某个类名 function hasClass(element,className){ return new RegExp(className,'gi').test(element.className); } //移除class function removeClass(element,className){ element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'),''); } //ie10 element.classList.add(className) //新增 element.classList.remove(className) //删除 element.classList.contains(className) //是否包含 element.classList.toggle(className) //toggle class
(2)style操作
element.setAttribute('style','') element.style.backgroundColor = 'red' element.style.cssText //用来读写或删除整个style属性 element.style.setProperty(propertyName,value) //设置css属性 element.style.getPropertyValue(property) //获取css属性 element.style.removeProperty(property) //删除css属性 操作非内联样式 //ie8 element.currentStyle[attrName] //ie9+ window.getComputedStyle(el,null)[attrName] window.getComputedStyle(el,null).getPropertyValue(attrName) //伪类 window.getComputedStyle(el,':after')[attrName]
三、对象
3.1 Object对象
(1)生成实例对象
var o = new Object()
(2)属性
Object.prototype //返回原型对象
(3)方法
Object.keys(o) //遍历对象的可枚举属性 Object.getOwnPropertyName(o) //遍历对象不可枚举的属性
对象实例的方法
valueOf():返回当前对象对应的值。 toString():返回当前对象对应的字符串形式。 toLocaleString():返回当前对象对应的本地字符串形式。 hasOwnProperty():判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。 isPrototypeOf():判断当前对象是否为另一个对象的原型。 propertyIsEnumerable():判断某个属性是否可枚举。
3.2 Array对象
(1)生成实例对象
var a = new Array()
(2)属性
a.length //长度
(3)Array.isArray()
Array.isArray(a) //用来判断一个值是否为数组
(4)Array实例的方法
a.valueof() //返回数组本身 a.toString() //返回数组的字符串形式 a.push(value,vlaue....) //用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。 pop() //用于删除数组的最后一个元素,并返回该元素 join() //以参数作为分隔符,将所有数组成员组成一个字符串返回。如果不提供参数,默认用逗号分隔。 concat() //用于多个数组的合并。它将新数组的成员,添加到原数组的尾部,然后返回一个新数组,原数组不变。 shift() //用于删除数组的第一个元素,并返回该元素。 unshift(value) //用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。 reverse() //用于颠倒数组中元素的顺序,返回改变后的数组 slice(start_index, upto_index); //用于提取原数组的一部分,返回一个新数组,原数组不变。第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内)。如果省略第二个参数,则一直返回到原数组的最后一个成员。负数表示倒数第几个。 splice(index, count_to_remove, addElement1, addElement2, ...); //用于删除原数组的一部分成员,并可以在被删除的位置添加入新的数组成员,返回值是被删除的元素。第一个参数是删除的起始位置,第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素。 sort() //对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变。如果想让sort方法按照自定义方式排序,可以传入一个函数作为参数,表示按照自定义方法进行排序。该函数本身又接受两个参数,表示进行比较的两个元素。如果返回值大于0,表示第一个元素排在第二个元素后面;其他情况下,都是第一个元素排在第二个元素前面。 map() //对数组的所有成员依次调用一个函数,根据函数结果返回一个新数组。 map(elem,index,arr) //map方法接受一个函数作为参数。该函数调用时,map方法会将其传入三个参数,分别是当前成员、当前位置和数组本身。 forEach() //遍历数组的所有成员,执行某种操作,参数是一个函数。它接受三个参数,分别是当前位置的值、当前位置的编号和整个数组。 filter() //参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。 some() //用来判断数组成员是否符合某种条件。接受一个函数作为参数,所有数组成员依次执行该函数,返回一个布尔值。该函数接受三个参数,依次是当前位置的成员、当前位置的序号和整个数组。只要有一个数组成员的返回值是true,则整个some方法的返回值就是true,否则false。 every() //用来判断数组成员是否符合某种条件。接受一个函数作为参数,所有数组成员依次执行该函数,返回一个布尔值。该函数接受三个参数,依次是当前位置的成员、当前位置的序号和整个数组。所有数组成员的返回值都是true,才返回true,否则false。 reduce() //依次处理数组的每个成员,最终累计为一个值。从左到右处理(从第一个成员到最后一个成员) reduceRight() //依次处理数组的每个成员,最终累计为一个值。从右到左(从最后一个成员到第一个成员) indexOf(s) //返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。可以接受第二个参数,表示搜索的开始位置 lastIndexOf() //返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1。
3.3 Number对象
(1)生成对象
var n = new Number()
(2)Number对象的属性
Number.POSITIVE_INFINITY:正的无限,指向Infinity。 Number.NEGATIVE_INFINITY:负的无限,指向-Infinity。 Number.NaN:表示非数值,指向NaN。 Number.MAX_VALUE:表示最大的正数,相应的,最小的负数为-Number.MAX_VALUE。 Number.MIN_VALUE:表示最小的正数(即最接近0的正数,在64位浮点数体系中为5e-324),相应的,最接近0的负数为-Number.MIN_VALUE。 Number.MAX_SAFE_INTEGER:表示能够精确表示的最大整数,即9007199254740991。 Number.MIN_SAFE_INTEGER:表示能够精确表示的最小整数,即-9007199254740991。
(4)Number对象实例的方法
toString() //用来将一个数值转为字符串形式.可以接受一个参数,表示输出的进制。如果省略这个参数,默认将数值先转为十进制,再输出字符串;否则,就根据参数指定的进制,将一个数字转化成某个进制的字符串。 toFixed() //用于将一个数转为指定位数的小数,返回这个小数对应的字符串。 toExponential() //用于将一个数转为科学计数法形式。可传入一个参数,参数表示小数点后有效数字的位数,范围为0到20,超出这个范围,会抛出一个RangeError。 toPrecision() //用于将一个数转为指定位数的有效数字。
3.4 String 对象
(1)生成实例对象
var s = new String()
(2)String对象的属性
s.length //返回字符串的长度
(3)方法
s.chatAt(index) //返回指定位置的字符 s.fromCharCode() //该方法的参数是一系列Unicode码点,返回对应的字符串。 s.charCodeAt(index) //返回给定位置字符的Unicode码点(十进制表示) s.concat(s2) //用于连接两个字符串 s.slice(start,end) //用于从原字符串取出子字符串并返回,不改变原字符串。第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)。如果参数是负值,表示从结尾开始倒数计算的位置,即该负值加上字符串长度。 s.substring(start,end) //用于从原字符串取出子字符串并返回,不改变原字符串.第一个参数表示子字符串的开始位置,第二个位置表示结束位置。 s.substr(start,length) //用于从原字符串取出子字符串并返回,不改变原字符串。第一个参数是子字符串的开始位置,第二个参数是子字符串的长度。如果第一个参数是负数,表示倒数计算的字符位置。如果第二个参数是负数,将被自动转为0,因此会返回空字符串。 s.indexOf(s) //返回给定元素在字符串中第一次出现的位置,如果没有出现则返回-1。可以接受第二个参数,表示搜索的开始位置 s.lastIndexOf() //返回给定元素在字符串中最后一次出现的位置,如果没有出现则返回-1。 s.trim() //用于去除字符串两端的空格,返回一个新字符串 s.toLowerCase() //用于将一个字符串全部转为小写,返回一个新字符串,不改变原字符串。 s.toUpperCase() //全部转为大写 s.localeCompare(s2) //用于比较两个字符串。它返回一个整数,如果小于0,表示第一个字符串小于第二个字符串;如果等于0,表示两者相等;如果大于0,表示第一个字符串大于第二个字符串。 s.match(regexp) //用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null。 s.search() //返回值为匹配的第一个位置。如果没有找到匹配,则返回-1。 s.replace(oldValue,newValue) //用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式)。 s.split() //按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组。还可传入第二个参数,决定了返回数组的成员数。
3.5 Math对象
(1)属性
Math.E:常数e。 Math.LN2:2的自然对数。 Math.LN10:10的自然对数。 Math.LOG2E:以2为底的e的对数。 Math.LOG10E:以10为底的e的对数。 Math.PI:常数Pi。 Math.SQRT1_2:0.5的平方根。 Math.SQRT2:2的平方根。
(2)数学方法
Math.abs():返回参数的绝对值 Math.ceil():向上取整,接受一个参数,返回大于该参数的最小整数。 Math.floor():向下取整 Math.max(n,n1,...):可接受多个参数,返回最大值 Math.min(n,n1,..):可接受多个参数,返回最小值 Math.pow(n,e):指数运算, 返回以第一个参数为底数、第二个参数为幂的指数值。 Math.sqrt():返回参数值的平方根。如果参数是一个负值,则返回NaN。 Math.log():返回以e为底的自然对数值。 Math.exp():返回e的指数,也就是常数e的参数次方。 Math.round():四舍五入 Math.random():返回0到1之间的一个伪随机数,可能等于0,但是一定小于1。
(3)三角函数方法
Math.sin():返回参数的正弦 Math.cos():返回参数的余弦 Math.tan():返回参数的正切 Math.asin():返回参数的反正弦(弧度值) Math.acos():返回参数的反余弦(弧度值) Math.atan():返回参数的反正切(弧度值)
3.6 JSON对象
(1)方法
JSON.stringify() //用于将一个值转为字符串。该字符串应该符合JSON格式,并且可以被JSON.parse方法还原。 //(JSON.stringify(obj, selectedProperties))还可以接受一个数组,作为第二个参数,指定需要转成字符串的属性。 //还可以接受第三个参数,用于增加返回的JSON字符串的可读性。如果是数字,表示每个属性前面添加的空格(最多不超过10个);如果是字符串(不超过10个字符),则该字符串会添加在每行前面。 JSON.parse() //用于将JSON字符串转化成对象。
3.7 console对象
(1)方法
console.log(text,text2,...) //用于在console窗口输出信息。它可以接受多个参数,将它们的结果连接起来输出。如果第一个参数是格式字符串(使用了格式占位符),console.log方法将依次用后面的参数替换占位符,然后再进行输出。 console.info() //在console窗口输出信息,同时,会在输出信息的前面,加上一个蓝色图标。 console.debug() //在console窗口输出信息,同时,会在输出信息的前面,加上一个蓝色图标。 console.warn() //输出信息时,在最前面加一个黄色三角,表示警告; console.error() //输出信息时,在最前面加一个红色的叉,表示出错,同时会显示错误发生的堆栈 console.table() //可以将复合类型的数据转为表格显示。 console.count() //用于计数,输出它被调用了多少次。 console.dir() //用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示。 console.dirxml() //用于以目录树的形式,显示DOM节点。 console.assert() //接受两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。 //这两个方法用于计时,可以算出一个操作所花费的准确时间。 console.time() console.timeEnd() //time方法表示计时开始,timeEnd方法表示计时结束。它们的参数是计时器的名称。调用timeEnd方法之后,console窗口会显示“计时器名称: 所耗费的时间”。 console.profile() //用来新建一个性能测试器(profile),它的参数是性能测试器的名字。 console.profileEnd() //用来结束正在运行的性能测试器。 console.group() console.groupend() //上面这两个方法用于将显示的信息分组。它只在输出大量信息时有用,分在一组的信息,可以用鼠标折叠/展开。 console.groupCollapsed() //用于将显示的信息分组,该组的内容,在第一次显示时是收起的(collapsed),而不是展开的。 console.trace() //显示当前执行的代码在堆栈中的调用路径。 console.clear() //用于清除当前控制台的所有输出,将光标回置到第一行。
HTML5 API篇
一、多媒体 音频(audio)和视频(video)
在HTML5中引入了
<audio src="m.mp3"/> <video src="m.mp4" width=320 height=400 /> 由于不同的浏览器对标准音频和视频的编解码支持上并不一致,所以通常需要使用<source>元素来为指定不同格式的媒体源: <audio id="music"> <source src="m.mp3" type="audio/mpeg"> <source src="m.ogg" type="audio/ogg;codec='vorbis'"> </audio>
<source>
元素没有任何内容:没有闭合的标签,也需要使用“/>”来结束它们。我们可以在
<audio>
和</audio>
(或<video>
和</video>
)标签之间插入文本内容,如果浏览器支持<audio>
和<video>
元素,将不会渲染文本内容;而如果浏览器不支持时,则会将它们渲染出来。<audio id="music"> <source src="m.mp3" type="audio/mpeg"> <source src="m.ogg" type="audio/ogg;codec='vorbis'"> 您的浏览器不支持audio标签。 </audio>
1.1 HTML中媒体的属性
(1)视频(
autoplay autoplay 如果出现该属性,则视频在就绪后马上播放。 controls controls 如果出现该属性,则向用户显示控件,比如播放按钮。 height pixels 设置视频播放器的高度。 width pixels 设置视频播放器的宽度。 loop loop 如果出现该属性,则循环播放。 muted muted 如果出现该属性,视频的音频输出为静音。 poster URL 规定视频正在下载时显示的图像,直到用户点击播放按钮。 preload auto/metadata/none 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。 src URL 要播放的视频的 URL。
(2)音频(
autoplay autoplay 如果出现该属性,则视频在就绪后马上播放。 controls controls 如果出现该属性,则向用户显示控件,比如播放按钮。 loop loop 如果出现该属性,则当媒介文件完成播放后再次开始播放。 muted muted 如果出现该属性,视频的音频输出为静音。 preload auto/metadata/none 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。 src URL 要播放的视频的 URL。
1.2 用JavaScript操作音频和视频
audio可以通过new创建Audio对象
var music = new Audio('m.mp3');
还可以通过标签获取
var music = document.getElementById('music');
检测浏览器是否支持
var hasAudio = !!(music.canPlayType); //通过!!运算符将结果转换成布尔值
(1)属性
只读属性:
duration 整个媒体文件的播放时长,以秒为单位。如果无法获取时长,则返回NaN paused 如果媒体文件当前被暂停,则返回true。如果还未开始播放,默认返回true ended 如果媒体文件已经播放完毕,则返回true startTime 返回最早的播放起始时间,一般是0.0,除非是缓冲过的媒体文件,并且一部分内容已经不在缓冲区 error 在发生了错误的情况下返回的错误代码 currentSrc 以字符串形式返回当前正在播放或已加载的文件。对应于浏览器在source元素中选择的文件 seeking 如果播放器正在跳到一个新的播放点,那seeking的值为true。 initialTime 指定了媒体的开始时间,单位为秒
可读写属性:
autoplay 将媒体文件设置为创建后自动播放,或者查询是否已设置为autoplay loop 返回是否循环播放,或设置循环播放(或者不循环播放) currentTime 指定了播放器应该跳过播放的时间(单位为秒)。在播放过程中,可设置currentTime属性来进行定点播放。 controls 显示或隐藏用户控制界面,或者查询用户控制界面当前是否可见 volume 在0.0到1.0之间设置音频音量的相对值,或者查询当前音量相对值 muted 布尔值,设置静音或者消除静音,或者检测当前是否为静音 autobuffer 通知播放器在媒体文件开始播放前,是否惊醒缓冲加载。如果已设置为autoplay,则忽略此特性 playbackRate 用于指定媒体播放的速度。1.0表示正常速度,大于1则表示“快进”,0~1之间表示“慢放”,负值表示回放。
三个特殊属性:
played 返回已经播放的时间段 buffered 返回当前已经缓冲的时间段 seekable 返回当前播放器需要跳到的时间段 played、buffered和seekable都是TimeRanges对象,每个对象都有一个length属性以及start(index)和end(index)方法,前者表示当前一个时间段,后者分别返回当前时间段的起始时间点和结束时间点(单位为秒)。
还有另外三个属性:
readyState、networkState和error,它们包含<audio>
和<video>
元素的一些状态细节。每个属性都是数字类型的,而且为每个有效值都定义了对应的常量。readyStete属性
readyState属性指定当前已经加载了多少媒体内容,只读属性
HAVE_NOTHING(数字值为0):没有获取到媒体的任何信息,当前播放位置没有可播放数据。 HAVE_METADATA(数字值为1):已经获取到足够的媒体数据,但是当前播放位置没有有效的媒体数据(也就是说,获取到的媒体数据无效,不能播放)。 HAVE_CURRENT_DATA(数字值为2):当前播放位置已经有数据可以播放,但没有获致到可以让播放器前进的数据。当媒体为视频时,意思是当前帖的数据已获取,但没有获取到下一帧的数据,或者当前帧已经是播放的最重一帧。 HAVE_FUTURE_DATA(数字值为3):当前播放位置已经有数据可以播放,而且也获取到了可以让播放器前进的数据。当媒体为视频时,意思是当前帧的数据已获取,而且也获取到了下刺目贩数据,当前帧是播放的最后一帧时,readyState属性不可能为HAVE_FUTURE_DTAT。 HAVE_ENOUGH)DATA(数字值为4):当前播放位置已经有数据可以播放,同时也获取到了可以让播放器前进的数据,而且浏览器确认媒体以某一种速度进行加载,可以保证有足够的后续数据进行播放。
networkState属性
networkState属性读取当前的网络状态,共有如下所示的4个可能值:
NETWORK_EMPTY(数字值为0):元素牌初始状态。 NETWORK_IDLE(数字值为1):浏览器已选择好用什么编码格式来播放媒体,但尚未建立网络连接。 NETWORK_LOADING(数字值为2):媒体数据加载中。 NETWORK_NO_SOURCE(数字值为3):没有支持的编码格式,不执行加载。
error属性
当在加载媒体或者播放媒体过程中发生错误时,浏览器就会设置
MEDIA_ERR_ABORTED(数字值为1):媒体数据的下载过程由于用户的操作原因而被中止。 MEDIA_ERR_NETWORK(数字值为2):确认媒体资源可用,但是在下载时出现网络错误,媒体数据下载过程被中止。 MEDIA_ERR_DECODE(数字值为3):确认媒体资源可能,但是解码时发生错误。 MEDIA_ERR_SRC_NOT_SUPPORTED(数字值为4):媒体格式不被支持。
video的额外属性:
poster 在视频加载完成之前,代表视频内容的图片的URL地址。该特性可读可修改 width、height 读取或设置显示尺寸。如果大小不匹配视频本身,会导致边缘出现黑色条状区域 videoWidth、videoHeight 返回视频的固有或自使用宽度和高度。只读
(2)方法
canPlayType(type)方法将媒体的MIME类型作为参数,用来测试浏览器是否支持指定的媒体类型。如果它不能播放该类型的媒体文件,将返回一个空的字符串;反之,它会返回一个字符串:“maybe”或“probably”。
var a = new Audio(); if(a.canPlayType('audio/wav')){ a.src = 'm.wav'; a.play(); }
其他方法:
play() 控制媒体开始播放 pause() 暂停媒体播放 load() 重新加载src指定的资源
(3)事件
audio元素和video元素加载音频和视频时,以下事件按次序发生。
loadstart:开始加载音频和视频。 durationchange:音频和视频的duration属性(时长)发生变化时触发,即已经知道媒体文件的长度。如果没有指定音频和视频文件,duration属性等于NaN。如果播放流媒体文件,没有明确的结束时间,duration属性等于Inf(Infinity)。 loadedmetadata:媒体文件的元数据加载完毕时触发,元数据包括duration(时长)、dimensions(大小,视频独有)和文字轨。 loadeddata:媒体文件的第一帧加载完毕时触发,此时整个文件还没有加载完。 progress:浏览器正在下载媒体文件,周期性触发。下载信息保存在元素的buffered属性中。 canplay:浏览器准备好播放,即使只有几帧,readyState属性变为CAN_PLAY。 canplaythrough:浏览器认为可以不缓冲(buffering)播放时触发,即当前下载速度保持不低于播放速度,readyState属性变为CAN_PLAY_THROUGH。
除了上面这些事件,audio元素和video元素还支持以下事件。
abort 播放中断 emptied 媒体文件加载后又被清空,比如加载后又调用load方法重新加载。 ended 播放结束 error 发生错误。该元素的error属性包含更多信息。 pause 播放暂停 play 暂停后重新开始播放 playing 开始播放,包括第一次播放、暂停后播放、结束后重新播放。 ratechange 播放速率改变 seeked 搜索操作结束 seeking 搜索操作开始 stalled 浏览器开始尝试读取媒体文件,但是没有如预期那样获取数据 suspend 加载文件停止,有可能是播放结束,也有可能是其他原因的暂停 timeupdate 网页元素的currentTime属性改变时触发。 volumechange 音量改变时触发(包括静音)。 waiting 由于另一个操作(比如搜索)还没有结束,导致当前操作(比如播放)不得不等待。
二、Geolocation API(地理位置)
三、File API 文件系统API
四、WebRTC Blob PageVibility....
https://developer.mozilla.org/zh-CN/docs/Web/API
https://www.kancloud.cn/dennis/tgjavascript/241852添加新评论
已有 3074 条评论
deep web sites darknet market links
darknet markets 2023 darknet market list
tor markets dark web drug marketplace
tor marketplace tor market url
tor dark web darknet drugs
dark market list darknet seiten
darkmarket darknet drugs
dark internet deep web drug store
dark market 2023 darknet market list
darknet marketplace deep web drug url
how to access dark web dark website
darknet site darknet drug store
darkmarket url deep web links
darknet drug market darknet links
how to get on dark web dark web sites
dark market list tor market
darknet drug store darkmarket list
darknet market links dark markets 2023
drug markets onion tor market
dark net deep web drug markets
drug markets dark web the dark internet
deep web drug store dark web links
dark market url free dark web
dark market 2023 dark websites
singulair pill amantadine 100 mg ca order avlosulfon 100 mg generic
black internet darknet drug market
dark web sites dark markets 2023
darkweb marketplace darknet market
bitcoin dark web dark web market list
dark market list dark web market list
tor darknet deep dark web
tor marketplace darknet markets
dark market 2023 dark net
dark web links how to access dark web
dark web site dark web site
dark web search engines blackweb official website
blackweb onion market
tor market darkmarket list
deep web drug links deep web links
tor market links bitcoin dark web
onion market darknet search engine
dark market list dark web sites links
the dark internet dark web market list
darknet market dark web market list
bitcoin dark web darknet sites
dark web websites dark web sites
darknet drugs deep web sites
dark markets dark web market
darknet market links darknet site
tor market links best darknet markets
darknet links bitcoin dark web
darknet market links dark market list
darknet websites darknet sites
darknet websites dark market 2023
tor dark web deep web drug url
dark market link tor markets links
dark web site how to access dark web
darknet market links darknet marketplace
deep web drug store bitcoin dark web
darknet drug store darkmarket list
darkmarket link bitcoin dark web
deep web search dark web site
tor marketplace darknet market list
darkmarket list darknet market list
blackweb official website deep web drug links
deep web markets the dark internet
darknet sites darknet market lists
darkmarket 2023 darknet markets 2023
tor markets drug markets dark web
dark web markets blackweb
darknet market list darkmarket
tor market links deep web links
deep web search dark web search engines
deep web search deep web drug store
dark web market dark market link
dark websites dark web market list
tor market drug markets dark web
blackweb blackweb
deep web drug links darknet drug store
the dark internet black internet
darkmarket list drug markets dark web
deep web drug store darknet market lists
deep web markets free dark web
dark web site onion market
darknet market drug markets dark web
drug markets onion darknet websites
deep web drug store tor market links
darknet drug store dark market 2023
dark market 2023 dark internet
dark internet darknet markets 2023
the dark internet dark web link
dark web market dark markets
dark website darknet marketplace
blackweb darknet drug market
dark website darkmarket list
dark market list darknet links
darknet drugs darknet market links
dark websites darkmarket 2023
dark market link darknet site
darknet drug market deep dark web
dark web link dark markets 2023
darknet market list deep dark web
dark web drug marketplace dark website
dark market link darkmarket list
best darknet markets dark market 2023
tor market links dark market onion
dark web search engine deep web sites
deep web drug url dark market list
dark markets 2023 bitcoin dark web
dark web market links dark net
darknet search engine darknet websites
tor darknet blackweb official website
dark market url darknet market lists
darknet sites dark web search engine
darkmarkets dark web link
dark web links dark website
darknet marketplace dark web market list
darkmarket url dark market onion
darknet websites the dark internet
deep web drug url deep web drug url
blackweb official website tor markets
dark market onion bitcoin dark web
darkmarket dark internet
dark market 2023 tor markets
dark net best darknet markets
tor market darknet market lists
darkmarket url darkmarket link
dark market link bitcoin dark web
darknet sites free dark web
tor markets links onion market
tor marketplace darknet search engine
dark net darkmarket
darknet market lists darknet market links
how to access dark web tor marketplace
dark web markets dark web link
dark market 2023 tor market url
tor markets 2023 dark web market list
dark web sites darkmarket url
darkmarket link darkmarket url
dark markets 2023 deep web drug markets
dark internet darknet drug links
dark web site dark web markets
dark market link dark web websites
bitcoin dark web dark markets
deep web sites dark web drug marketplace
darknet drug store dark web sites
deep web drug store darknet seiten
dark web link darkweb marketplace
best darknet markets dark web websites
deep web drug links dark market onion
the dark internet tor darknet
dark web websites deep web links
darkmarket list darknet links
dark web drug marketplace darkweb marketplace
darkmarket list darkmarket 2023
darknet market list blackweb
dark web market how to access dark web
deep web drug links drug markets dark web
dark web market links tor market url
dark web links darknet marketplace
onion market free dark web
tor market links dark market url
dark markets 2023 darknet markets
dark web site dark market list
blackweb official website the dark internet
drug markets onion darknet drugs
free dark web darkmarket link
darknet drug store darkmarket list
deep web drug links tor markets
darknet drug store dark market list
dark websites tor marketplace
dark web market dark websites
tor dark web tor market links
best darknet markets darkweb marketplace
dark market url tor marketplace
tor darknet darknet search engine
dark web markets deep web drug markets
darknet links darknet market
dark web sites dark website
darknet drugs dark markets
best darknet markets darknet site
darknet links dark web market links
drug markets onion deep web drug url
dark web links deep web search
buy olumiant 4mg online cheap purchase glucophage generic order generic lipitor
dark web search engines darkweb marketplace
buy albuterol 100mcg for sale proventil 100mcg for sale buy phenazopyridine online
dark markets 2023 dark web market
dark markets 2023 darknet sites
tor dark web darknet search engine
darknet market dark web links
the dark internet darknet sites
deep web sites deep web drug url
blackweb darkweb marketplace
darknet markets 2023 darkmarket link
dark market url darkmarket 2023
free dark web deep web drug markets
darkweb marketplace bitcoin dark web
darknet sites blackweb official website
darknet market links darknet drug links
dark market url darkmarket list
tor markets 2023 darknet links
deep web search dark web site
tor market links tor markets
dark market 2023 darknet market
dark market url tor dark web
darknet search engine darknet market list
deep web drug url onion market
darknet sites dark market url
darknet drug links black internet
deep web drug markets dark web site
tor dark web dark web sites
drug markets dark web darknet site
dark markets darknet markets 2023
dark web link darknet sites
tor darknet darknet drug store
darknet market links deep dark web
darkmarket 2023 darknet markets
darknet drug links dark markets
how to access dark web deep web links
tor markets links darknet site
blackweb dark web search engine
free dark web dark web search engine
darknet websites dark web market list
darknet drug market darknet markets 2023
deep web sites deep web links
dark market onion tor market
how to get on dark web darkmarket url
darknet markets 2023 tor market
tor market url dark market 2023
darknet search engine deep web drug markets
dark web market links how to access dark web
darknet drug market dark websites
dark web link deep web drug url
darknet drug links dark web sites
tor darknet darknet seiten
how to access dark web dark web markets
dark web market list dark web websites
deep web sites tor markets
how to access dark web dark market list
blackweb tor markets links
darknet drug store darknet drug market
bitcoin dark web dark market onion
tor darknet dark web sites
dark markets 2023 deep web drug markets
darknet drug links darkweb marketplace
darknet seiten dark web websites
dark web market dark market onion
dark web market dark web market links
darknet market list dark websites
dark web market darkmarket url
dark web drug marketplace dark net
dark web links dark web drug marketplace
dark market link dark web market links
dark market list dark web link
darknet markets 2023 best darknet markets
dark web sites links dark web site
dark web market darkmarket url
dark web sites darkmarket 2023
dark web websites dark web websites
tor markets darknet market
bitcoin dark web dark web drug marketplace
darknet markets how to get on dark web
darknet links tor market links
dark web market darkmarket list
free dark web darkmarket 2023
dark markets the dark internet
dark web drug marketplace darknet market lists
darknet search engine dark web link
dark market onion darknet markets
darkmarket 2023 dark web site
tor market links dark websites
darknet drug links deep web drug markets
darknet site dark market url
darknet drug market darknet drug store
dark net dark websites
darkmarket list the dark internet
dark markets 2023 deep web drug store
blackweb deep web drug store
darkmarket url dark web sites
tor dark web dark web websites
dark market list darkmarket url
dark web links dark web market
darkmarket link darknet site
dark web markets darknet drugs
tor markets dark web markets
tor darknet dark web search engine
tor market links tor markets 2023
dark markets 2023 dark net
tor markets links dark web search engines
dark web drug marketplace tor market url
dark market url tor markets 2023
darknet search engine deep web drug links
deep web drug store darknet websites
dark market tor markets 2023
dark website dark market link
darkmarket list deep web search
darkmarket tor darknet
free dark web dark web market list
deep web sites onion market
how to access dark web darknet sites
the dark internet deep web markets
darkmarket list dark web markets
darkmarket darknet search engine
darknet drug market tor marketplace
the dark internet drug markets dark web
dark web sites links dark market
dark market list blackweb
tor market url deep web sites
onion market darkmarkets
darkweb marketplace how to access dark web
tor marketplace darkmarket url
darknet sites darknet market list
dark market blackweb
how to access dark web bitcoin dark web
dark web sites deep web markets
dark net dark web drug marketplace
best darknet markets darknet drug market
dark web links darknet drug market
the dark internet dark web markets
darknet market links darkmarkets
dark web search engines best darknet markets
how to access dark web darknet drug market
darkmarket link dark web sites
darknet drug links dark web sites links
darknet drugs dark market
dark market url deep web links
free dark web darknet market links
how to get on dark web tor market
dark web market links darknet market lists
dark market link deep web sites
tor darknet deep web sites
best darknet markets darkmarket link
dark market darkmarket list
darknet marketplace deep web markets
deep dark web black internet
how to get on dark web dark web access
dark market link dark web market list
tor marketplace drug markets dark web
tor marketplace darknet sites
darkmarket 2023 darkmarkets
dark web market list darknet drug market
dark market onion darkweb marketplace
darknet seiten dark market 2023
dark web markets dark internet
dark web site darknet markets 2023
tor dark web darkmarket link
darknet site dark markets
dark web market links darknet links
dark market onion darknet seiten
dark website darknet drug store
dark market link darknet sites
dark web links dark websites
dark net dark web search engines
deep web sites dark web market links
tor market url dark market link
dark market drug markets dark web
darkmarket link darknet drugs
free dark web darknet drug links
bitcoin dark web dark web market
deep dark web dark web search engines
darknet drugs darkmarkets
darknet sites dark internet
drug markets onion tor marketplace
dark web search engine dark net
darknet seiten tor markets
dark markets blackweb
darknet markets dark web site
dark market onion best darknet markets
darkmarket url dark web sites
tor markets 2023 drug markets onion
tor market darknet drugs
onion market darknet drug market
deep web drug markets the dark internet
darkmarket url dark web links
deep web search darknet search engine
darknet marketplace how to access dark web
darknet market darknet market links
naprosyn 500mg oral naproxen order prevacid drug
darknet markets 2023 dark market
darknet market darknet market
drug markets onion darknet market
dark market 2023 dark market onion
deep web drug links bitcoin dark web
darknet drug store dark web market links
dark market darknet seiten
onion market deep web drug store
dark net darkmarket list
dark market 2023 tor markets links
how to get on dark web deep web search
dark web link deep web sites
tor dark web darknet markets
darknet drug market tor darknet
tor darknet deep web markets
darknet market links tor market url
dark web search engines tor markets 2023
dark web markets tor markets 2023
dark web sites best darknet markets
deep web drug links deep web links
deep web drug url tor darknet
dark web markets tor market url
drug markets onion tor market links
best darknet markets tor darknet
dark market deep web sites
deep web search dark web sites
dark web site deep web drug store
darknet drug market dark web links
darknet drug store dark web sites
darkweb marketplace drug markets dark web
dark web search engine dark market 2023
dark market 2023 dark web access
dark web links dark market
the dark internet darkmarket list
dark market link darknet websites
tor markets tor market url
darknet websites deep web links
how to access dark web drug markets dark web
deep web sites drug markets dark web
tor dark web best darknet markets
dark web links dark web access
darknet websites tor dark web
dark web sites darkmarket
darkmarket list dark market link
darkweb marketplace how to get on dark web
tor markets darkmarket url
deep web links darknet links
dark web market dark web drug marketplace
tor darknet dark market 2023
darknet seiten dark web search engine
dark web market links darkweb marketplace
darkmarket url dark internet
dark web sites darkmarkets
dark web search engine dark market list
deep web drug markets dark web market
darkmarket dark web sites links
darknet seiten darknet drugs
deep web links drug markets dark web
darknet markets dark market url
dark market 2023 darknet drug market
tor dark web drug markets dark web
best darknet markets darkmarket url
dark markets 2023 darkmarket link
drug markets dark web dark web market links
dark market 2023 tor market links
darknet market list dark markets
dark web site darknet search engine
darknet drug store dark website
dark markets 2023 dark web site
dark websites deep dark web
deep dark web deep web drug store
dark web market links darknet seiten
dark web drug marketplace best darknet markets
dark markets darknet drugs
blackweb darkmarkets
deep web search darknet search engine
dark web access darknet market
tor market deep web drug links
tor market how to access dark web
dark web link deep web markets
deep web markets onion market
deep web drug store how to access dark web
darkweb marketplace dark web market links
dark internet dark web market list
dark markets 2023 dark markets
how to access dark web dark market onion
darkmarket deep web drug url
darknet market links dark websites
deep web sites darknet drugs
dark web link deep dark web
darknet seiten dark market list
the dark internet dark market 2023
darkmarket link free dark web
tor markets dark web access
deep web drug store how to access dark web
darknet drug links darknet search engine
drug markets onion dark web search engines
dark web markets deep web links
darknet links darknet markets
tor markets darknet market list
darknet drug store free dark web
deep dark web darknet site