Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Начала WEB-дизайна часть 2.pdf
Скачиваний:
25
Добавлен:
20.03.2015
Размер:
2.87 Mб
Скачать

Приложение. Универсальный почти алфавитный определитель всего на свете

Не понимаете, как этим пользоваться? Обратитесь к главе 2, где изложены начальные сведения о тестировании HTML5-функциональности. Определять все те же функции позволяет библиотека Modernizr (http://www..modernizr..com).

Элементы

<audio> (http://bit..ly/cZxI7K):

return !!document.createElement(‘audio’).canPlayType;

<audio> в формате MP3 (http://ru..wikipedia..org/wiki/MP3): var a = document.createElement('audio');

return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));

<audio> в формате Vorbis (http://ru..wikipedia..org/wiki/Vorbis): var a = document.createElement('audio');

return !!(a.canPlayType && a.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/, ''));

<audio> в формате WAV (http://en..wikipedia..org/wiki/WAV): var a = document.createElement('audio');

return !!(a.canPlayType && a.canPlayType('audio/wav; codecs="1"').replace(/no/, ''));

<audio> в формате AAC (http://ru..wikipedia..org/wiki/Advanced_Audio_Coding): var a = document.createElement('audio');

return !!(a.canPlayType && a.canPlayType('audio/mp4; codecs="mp4a.40.2"').replace(/no/, ''));

196 Приложение.. Универсальный почти алфавитный определитель всего на свете

<canvas> (см. главу 4):

return !!document.createElement('canvas').getContext;

<canvas>, API рисования текста (см. раздел «Текст» главы 4): var c = document.createElement('canvas');

return c.getContext && typeof c.getContext('2d').fillText == 'function';

<command> (http://bit..ly/aQt2Fn):

return ‘type’ in document.createElement(‘command’);

<datalist> (http://bit..ly/9WVz5p):

return ‘options’ in document.createElement(‘datalist’);

<details> (http://bit..ly/cO8mQy):

return ‘open’ in document.createElement(‘details’);

<device> (http://bit..ly/aaBeUy):

return ‘type’ in document.createElement(‘device’);

<form>, валидация (http://bit..ly/cb9Wmj):

return 'noValidate' in document.createElement('form');

<iframe sandbox> (http://blog..whatwg..org/whats-next-in-html-episode-2-sandbox): return ‘sandbox’ in document.createElement(‘iframe’);

<iframe srcdoc> (http://blog..whatwg..org/whats-next-in-html-episode-2-sandbox): return ‘srcdoc’ in document.createElement(‘iframe’);

<input

autofocus> (см. «Автофокусировка полей» на с. 148):

return

'autofocus' in document.createElement('input');

<input

placeholder> (см. «Подсказывающий текст» на с. 147):

return

'placeholder' in document.createElement('input');

<input

type="color"> (http://bit..ly/9HkeNn):

var i = document.createElement(‘input’); i.setAttribute(‘type’, ‘color’);

return i.type !== ‘text’;

<input type="email"> (см. раздел «Адреса электронной почты» главы 9): var i = document.createElement('input');

i.setAttribute('type', 'email'); return i.type !== 'text';

<input type="number"> (см. раздел «Числа как счетчики» главы 9): var i = document.createElement('input');

Элементы

197

i.setAttribute('type', 'number'); return i.type !== 'text';

<input type="range"> (см. раздел «Числа как ползунки» главы 9): var i = document.createElement('input');

i.setAttribute('type', 'range'); return i.type !== 'text';

<input type="search"> (см. раздел «Формы поиска» главы 9): var i = document.createElement('input'); i.setAttribute('type', 'search');

return i.type !== 'text';

<input type="tel"> (http://bit..ly/bZm0Q5): var i = document.createElement(‘input’); i.setAttribute(‘type’, ‘tel’);

return i.type !== ‘text’;

<input type="url"> (см. раздел «Веб-адреса» главы 9): var i = document.createElement('input'); i.setAttribute('type', 'url');

return i.type !== 'text';

<input type="date"> (см. раздел «Выборщики даты» главы 9): var i = document.createElement('input'); i.setAttribute('type', 'date');

return i.type !== 'text';

<input type="time"> (см. раздел «Выборщики даты» главы 9): var i = document.createElement('input'); i.setAttribute('type', 'time');

return i.type !== 'text';

<input type="datetime"> (см. раздел «Выборщики даты» главы 9): var i = document.createElement('input');

i.setAttribute('type', 'datetime'); return i.type !== 'text';

<input type="datetime-local"> (см. раздел «Выборщики даты» главы 9): var i = document.createElement('input');

i.setAttribute('type', 'datetime-local);

198

Приложение.. Универсальный почти алфавитный определитель всего на свете

return i.type !== 'text';

<input type="month"> (см. раздел «Выборщики даты» главы 9): var i = document.createElement('input'); i.setAttribute('type', 'month');

return i.type !== 'text';

<input type="week"> (см. раздел «Выборщики даты» главы 9): var i = document.createElement('input'); i.setAttribute('type', 'week');

return i.type !== 'text';

<meter> (http://bit..ly/c0pX0l):

return ‘value’ in document.createElement(‘meter’);

<output> (http://bit..ly/asJaqH):

return ‘value’ in document.createElement(‘output’);

<progress> (http://bit..ly/bjDMy6):

return ‘value’ in document.createElement(‘progress’);

<time> (http://bit..ly/bI62jp):

return ‘valueAsDate’ in document.createElement(‘time’);<video> (см. главу 5):

return !!document.createElement('video').canPlayType;

<video>, заголовки (http://bit..ly/9mLiRr):

return 'track' in document.createElement('track');

<video poster> (http://bit..ly/b6RhzT):

return ‘poster’ in document.createElement(‘video’);

<video> в формате WebM (http://www..webmproject..org): var v = document.createElement('video');

return !!(v.canPlayType && v.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/, ''));

<video> в формате H.264 (см. раздел «Видеокодеки» главы 5): var v = document.createElement('video');

return !!(v.canPlayType && v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, ''));

<video> в формате Theora (см. раздел «Видеокодеки» главы 5): var v = document.createElement('video');

Элементы

199

return !!(v.canPlayType && v.canPlayType('video/ogg; codecs="theora, vorbis"').replace(/no/, ''));

contentEditable (http://bit..ly/aLivbS):

return ‘isContentEditable’ in document.createElement(‘span’);

Drag-and-drop (http://bit..ly/aN0RFQ):

return ‘draggable’ in document.createElement(‘span’);

SVG (http://www..w3..org/TR/SVG/):

return !!(document.createElementNS && document.createElementNS

(‘http://www.w3.org/2000/svg’, ‘svg’).createSVGRect);

SVG в text/html (http://hacks..mozilla..org/2010/05/firefox-4-the-html5-parser-inline-svg- speed-and-more/):

var e = document.createElement(‘div’); e.innerHTML = ‘<svg></svg>’;

return !!(window.SVGSVGElement && e.firstChild instanceof window.SVGSVGElement);

WebSimpleDB (http://dev..w3..org/2006/webapi/WebSimpleDB/): return !!window.indexedDB;

Web Sockets (http://dev..w3..org/html5/websockets/): return !!window.WebSocket;

Web SQL (http://dev..w3..org/html5/webdatabase/): return !!window.openDatabase;

Геолокация (см. главу 6): return !!navigator.geolocation;

История (http://bit..ly/9JGAGB):

return !!(window.history && window.history.pushState && window.history.popState);

Локальное хранилище (http://dev..w3..org/html5/webstorage/):

return ('localStorage' in window) && window['localStorage'] !== null;

Микроданные (http://bit..ly/dBGnqr): return !!document.getItems;

Обмен сообщениями между документами (cross-document messaging) (http://bit.. ly/cUOqXd):

return !!window.postMessage;