123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- ;(function(window, document) {
-
- var version = '3.7.3';
-
- var options = window.html5 || {};
-
- var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
-
- var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
-
- var supportsHtml5Styles;
-
- var expando = '_html5shiv';
-
- var expanID = 0;
-
- var expandoData = {};
-
- var supportsUnknownElements;
- (function() {
- try {
- var a = document.createElement('a');
- a.innerHTML = '<xyz></xyz>';
-
- supportsHtml5Styles = ('hidden' in a);
- supportsUnknownElements = a.childNodes.length == 1 || (function() {
-
- (document.createElement)('a');
- var frag = document.createDocumentFragment();
- return (
- typeof frag.cloneNode == 'undefined' ||
- typeof frag.createDocumentFragment == 'undefined' ||
- typeof frag.createElement == 'undefined'
- );
- }());
- } catch(e) {
-
- supportsHtml5Styles = true;
- supportsUnknownElements = true;
- }
- }());
-
-
- function addStyleSheet(ownerDocument, cssText) {
- var p = ownerDocument.createElement('p'),
- parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
- p.innerHTML = 'x<style>' + cssText + '</style>';
- return parent.insertBefore(p.lastChild, parent.firstChild);
- }
-
- function getElements() {
- var elements = html5.elements;
- return typeof elements == 'string' ? elements.split(' ') : elements;
- }
-
- function addElements(newElements, ownerDocument) {
- var elements = html5.elements;
- if(typeof elements != 'string'){
- elements = elements.join(' ');
- }
- if(typeof newElements != 'string'){
- newElements = newElements.join(' ');
- }
- html5.elements = elements +' '+ newElements;
- shivDocument(ownerDocument);
- }
-
- function getExpandoData(ownerDocument) {
- var data = expandoData[ownerDocument[expando]];
- if (!data) {
- data = {};
- expanID++;
- ownerDocument[expando] = expanID;
- expandoData[expanID] = data;
- }
- return data;
- }
-
- function createElement(nodeName, ownerDocument, data){
- if (!ownerDocument) {
- ownerDocument = document;
- }
- if(supportsUnknownElements){
- return ownerDocument.createElement(nodeName);
- }
- if (!data) {
- data = getExpandoData(ownerDocument);
- }
- var node;
- if (data.cache[nodeName]) {
- node = data.cache[nodeName].cloneNode();
- } else if (saveClones.test(nodeName)) {
- node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
- } else {
- node = data.createElem(nodeName);
- }
-
-
-
-
-
-
-
- return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
- }
-
- function createDocumentFragment(ownerDocument, data){
- if (!ownerDocument) {
- ownerDocument = document;
- }
- if(supportsUnknownElements){
- return ownerDocument.createDocumentFragment();
- }
- data = data || getExpandoData(ownerDocument);
- var clone = data.frag.cloneNode(),
- i = 0,
- elems = getElements(),
- l = elems.length;
- for(;i<l;i++){
- clone.createElement(elems[i]);
- }
- return clone;
- }
-
- function shivMethods(ownerDocument, data) {
- if (!data.cache) {
- data.cache = {};
- data.createElem = ownerDocument.createElement;
- data.createFrag = ownerDocument.createDocumentFragment;
- data.frag = data.createFrag();
- }
- ownerDocument.createElement = function(nodeName) {
-
- if (!html5.shivMethods) {
- return data.createElem(nodeName);
- }
- return createElement(nodeName, ownerDocument, data);
- };
- ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
- 'var n=f.cloneNode(),c=n.createElement;' +
- 'h.shivMethods&&(' +
-
- getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
- data.createElem(nodeName);
- data.frag.createElement(nodeName);
- return 'c("' + nodeName + '")';
- }) +
- ');return n}'
- )(html5, data.frag);
- }
-
-
- function shivDocument(ownerDocument) {
- if (!ownerDocument) {
- ownerDocument = document;
- }
- var data = getExpandoData(ownerDocument);
- if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
- data.hasCSS = !!addStyleSheet(ownerDocument,
-
- 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
-
- 'mark{background:#FF0;color:#000}' +
-
- 'template{display:none}'
- );
- }
- if (!supportsUnknownElements) {
- shivMethods(ownerDocument, data);
- }
- return ownerDocument;
- }
-
-
- var html5 = {
-
- 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
-
- 'version': version,
-
- 'shivCSS': (options.shivCSS !== false),
-
- 'supportsUnknownElements': supportsUnknownElements,
-
- 'shivMethods': (options.shivMethods !== false),
-
- 'type': 'default',
-
- 'shivDocument': shivDocument,
-
- createElement: createElement,
-
- createDocumentFragment: createDocumentFragment,
-
- addElements: addElements
- };
-
-
- window.html5 = html5;
-
- shivDocument(document);
- if(typeof module == 'object' && module.exports){
- module.exports = html5;
- }
- }(typeof window !== "undefined" ? window : this, document));
|