html5shiv.js 3.4 KB

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