html5特征检测

本文介绍了一种通过JavaScript来检测浏览器是否支持HTML5特性的方法,包括音频、视频、画布、输入类型等,并验证了不同格式媒体文件的支持情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<audio> return !!document.createElement('audio').canPlayType; <audio> in MP3 format var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, '')); <audio> in Vorbis format var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/, '')); <audio> in WAV format var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/wav; codecs="1"').replace(/no/, '')); <audio> in AAC format var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/mp4; codecs="mp4a.40.2"').replace(/no/, '')); <canvas> return !!document.createElement('canvas').getContext; <canvas> text API var c = document.createElement('canvas'); return c.getContext && typeof c.getContext('2d').fillText == 'function'; <command> return 'type' in document.createElement('command'); <datalist> return 'options' in document.createElement('datalist'); <details> return 'open' in document.createElement('details'); <device> return 'type' in document.createElement('device'); <form> constraint validation return 'noValidate' in document.createElement('form'); <iframe sandbox> return 'sandbox' in document.createElement('iframe'); <iframe srcdoc> return 'srcdoc' in document.createElement('iframe'); <input autofocus> return 'autofocus' in document.createElement('input'); <input placeholder> return 'placeholder' in document.createElement('input'); <input type="color"> var i = document.createElement('input'); i.setAttribute('type', 'color'); return i.type !== 'text'; <input type="email"> var i = document.createElement('input'); i.setAttribute('type', 'email'); return i.type !== 'text'; <input type="number"> var i = document.createElement('input'); i.setAttribute('type', 'number'); return i.type !== 'text'; <input type="range"> var i = document.createElement('input'); i.setAttribute('type', 'range'); return i.type !== 'text'; <input type="search"> var i = document.createElement('input'); i.setAttribute('type', 'search'); return i.type !== 'text'; <input type="tel"> var i = document.createElement('input'); i.setAttribute('type', 'tel'); return i.type !== 'text'; <input type="url"> var i = document.createElement('input'); i.setAttribute('type', 'url'); return i.type !== 'text'; <input type="date"> var i = document.createElement('input'); i.setAttribute('type', 'date'); return i.type !== 'text'; <input type="time"> var i = document.createElement('input'); i.setAttribute('type', 'time'); return i.type !== 'text'; <input type="datetime"> var i = document.createElement('input'); i.setAttribute('type', 'datetime'); return i.type !== 'text'; <input type="datetime-local"> var i = document.createElement('input'); i.setAttribute('type', 'datetime-local); return i.type !== 'text'; <input type="month"> var i = document.createElement('input'); i.setAttribute('type', 'month'); return i.type !== 'text'; <input type="week"> var i = document.createElement('input'); i.setAttribute('type', 'week'); return i.type !== 'text'; <meter> return 'value' in document.createElement('meter'); <output> return 'value' in document.createElement('output'); <progress> return 'value' in document.createElement('progress'); <time> return 'valueAsDate' in document.createElement('time'); <video> return !!document.createElement('video').canPlayType; <video> captions return 'track' in document.createElement('track'); <video poster> return 'poster' in document.createElement('video'); <video> in WebM format var v = document.createElement('video'); return !!(v.canPlayType && v.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/, '')); <video> in H.264 format var v = document.createElement('video'); return !!(v.canPlayType && v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, '')); <video> in Theora format var v = document.createElement('video'); return !!(v.canPlayType && v.canPlayType('video/ogg; codecs="theora, vorbis"').replace(/no/, '')); contentEditable return 'isContentEditable' in document.createElement('span'); Cross-document messaging return !!window.postMessage; Drag-and-drop return 'draggable' in document.createElement('span'); File API return typeof FileReader != 'undefined'; Geolocation return !!navigator.geolocation; History return !!(window.history && window.history.pushState && window.history.popState); Local storage return ('localStorage' in window) && window['localStorage'] !== null; Microdata return !!document.getItems; Offline web applications return !!window.applicationCache; Server-sent events return typeof EventSource !== 'undefined'; Session storage try { return ('sessionStorage' in window) && window['sessionStorage'] !== null; } catch(e) { return false; } SVG return !!(document.createElementNS && document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect); SVG in text/html var e = document.createElement('div'); e.innerHTML = '<svg></svg>'; return !!(window.SVGSVGElement && e.firstChild instanceof window.SVGSVGElement); WebSimpleDB return !!window.indexedDB; Web Sockets return !!window.WebSocket; Web SQL Database return !!window.openDatabase; Web Workers return !!window.Worker; Undo return typeof UndoManager !== 'undefined';

参考地址:www.html5test.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值