Затруднения? Прочитайте Проверка технологий HTML5 для знакомства с основами. Хотите вместо этого библиотеку все-в-одном? Попробуйте Modernizr.
return !!document.createElement('audio').canPlayType;
<audio> в формате MP3
var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
<audio> в формате Vorbis
var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/, ''));
<audio> в формате WAV
var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/wav; codecs="1"').replace(/no/, ''));
<audio> в формате AAC
var a = document.createElement('audio'); return !!(a.canPlayType && a.canPlayType('audio/mp4; codecs="mp4a.40.2"').replace(/no/, ''));
return !!document.createElement('canvas').getContext;
<canvas> API текста
var c = document.createElement('canvas'); return c.getContext && typeof c.getContext('2d').fillText == 'function';
return 'type' in document.createElement('command');
return 'options' in document.createElement('datalist');
return 'open' in document.createElement('details');
<device>
return 'type' in document.createElement('device');
<form> без валидации
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');
<textarea placeholder>
return 'placeholder' in document.createElement('textarea');
<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';
return 'value' in document.createElement('meter');
return 'value' in document.createElement('output');
return 'value' in document.createElement('progress');
return 'valueAsDate' in document.createElement('time');
return !!document.createElement('video').canPlayType;
<video> заголовки
return 'src' in document.createElement('track');
<video poster>
return 'poster' in document.createElement('video');
<video> в формате WebM
var v = document.createElement('video'); return !!(v.canPlayType && v.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/, ''));
<video> в формате H.264
var v = document.createElement('video'); return !!(v.canPlayType && v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, ''));
<video> в формате Theora
var v = document.createElement('video'); return !!(v.canPlayType && v.canPlayType('video/ogg; codecs="theora"').replace(/no/, ''));
contentEditable (редактируемый контент)
return 'isContentEditable' in document.createElement('span');
Междокументные сообщения
return !!window.postMessage;
Перетащи-и-брось
return 'draggable' in document.createElement('span');
API файла
return typeof FileReader != 'undefined';
return !!navigator.geolocation;
Журнал
return !!(window.history && window.history.pushState);
try { return 'localStorage' in window && window['localStorage'] !== null; } catch(e) { return false; }
Микроданные
return !!document.getItems;
return !!window.applicationCache;
Серверные события
return typeof EventSource !== 'undefined';
Хранилище сессий
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 в text/htm
var e = document.createElement('div'); e.innerHTML = '<svg></svg>'; return !!(window.SVGSVGElement && e.firstChild instanceof window.SVGSVGElement);
Отмена
return typeof UndoManager !== 'undefined';
IndexedDB
return !!window.indexedDB;
Web Sockets
return !!window.WebSocket;
Web SQL Database
return !!window.openDatabase;
Фоновые вычисления (Web Workers)
return !!window.Worker;
XMLHttpRequest: междоменные запросы
return "withCredentials" in new XMLHttpRequest;
XMLHttpRequest: отправка данных формы
return !!window.FormData;
XMLHttpRequest: события загрузки
return "upload" in new XMLHttpRequest;
Сайт