html5.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
  3. Uncompressed source: https://github.com/aFarkas/html5shiv
  4. */
  5. (function(l, f) {
  6. function m() {
  7. var a = e.elements;
  8. return "string" == typeof a ? a.split(" ") : a
  9. }
  10. function i(a) {
  11. var b = n[a[o]];
  12. b || (b = {}, h++, a[o] = h, n[h] = b);
  13. return b
  14. }
  15. function p(a, b, c) {
  16. b || (b = f);
  17. if (g) return b.createElement(a);
  18. c || (c = i(b));
  19. b = c.cache[a] ? c.cache[a].cloneNode() : r.test(a) ? (c.cache[a] = c.createElem(a)).cloneNode() : c.createElem(a);
  20. return b.canHaveChildren && !s.test(a) ? c.frag.appendChild(b) : b
  21. }
  22. function t(a, b) {
  23. if (!b.cache) b.cache = {}, b.createElem = a.createElement, b.createFrag = a.createDocumentFragment, b.frag = b.createFrag();
  24. a.createElement = function(c) {
  25. return !e.shivMethods ? b.createElem(c) : p(c, a, b)
  26. };
  27. a.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + m().join().replace(/\w+/g, function(a) {
  28. b.createElem(a);
  29. b.frag.createElement(a);
  30. return 'c("' + a + '")'
  31. }) + ");return n}")(e, b.frag)
  32. }
  33. function q(a) {
  34. a || (a = f);
  35. var b = i(a);
  36. if (e.shivCSS && !j && !b.hasCSS) {
  37. var c, d = a;
  38. c = d.createElement("p");
  39. d = d.getElementsByTagName("head")[0] || d.documentElement;
  40. c.innerHTML = "x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
  41. c = d.insertBefore(c.lastChild, d.firstChild);
  42. b.hasCSS = !! c
  43. }
  44. g || t(a, b);
  45. return a
  46. }
  47. var k = l.html5 || {}, s = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
  48. r = /^(?: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,
  49. j, o = "_html5shiv",
  50. h = 0,
  51. n = {}, g;
  52. (function() {
  53. try {
  54. var a = f.createElement("a");
  55. a.innerHTML = "<xyz></xyz>";
  56. j = "hidden" in a;
  57. var b;
  58. if (!(b = 1 == a.childNodes.length)) {
  59. f.createElement("a");
  60. var c = f.createDocumentFragment();
  61. b = "undefined" == typeof c.cloneNode ||
  62. "undefined" == typeof c.createDocumentFragment || "undefined" == typeof c.createElement
  63. }
  64. g = b
  65. } catch (d) {
  66. g = j = !0
  67. }
  68. })();
  69. var e = {
  70. elements: k.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",
  71. version: "3.6.2pre",
  72. shivCSS: !1 !== k.shivCSS,
  73. supportsUnknownElements: g,
  74. shivMethods: !1 !== k.shivMethods,
  75. type: "default",
  76. shivDocument: q,
  77. createElement: p,
  78. createDocumentFragment: function(a, b) {
  79. a || (a = f);
  80. if (g) return a.createDocumentFragment();
  81. for (var b = b || i(a), c = b.frag.cloneNode(), d = 0, e = m(), h = e.length; d < h; d++) c.createElement(e[d]);
  82. return c
  83. }
  84. };
  85. l.html5 = e;
  86. q(f)
  87. })(this, document);