h5语义化标签处理 兼容ie8及以下

这段代码是HTML5 Shiv 3.7.3的实现,包含多个函数用于处理HTML元素创建、文档片段创建等操作。它能让旧浏览器支持HTML5新元素,定义了元素列表、版本信息等,还处理了对未知元素的支持情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**

  • @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
    */
    !function (a, b) {
    function c(a, b) {
    var c = a.createElement(“p”), d = a.getElementsByTagName(“head”)[0] || a.documentElement;
    return c.innerHTML = “x”, d.insertBefore(c.lastChild, d.firstChild)
    }

    function d() {
    var a = t.elements;
    return “string” == typeof a ? a.split(" ") : a
    }

    function e(a, b) {
    var c = t.elements;
    “string” != typeof c && (c = c.join(" “)), “string” != typeof a && (a = a.join(” ")), t.elements = c + " " + a, j(b)
    }

    function f(a) {
    var b = s[a[q]];
    return b || (b = {}, r++, a[q] = r, s[r] = b), b
    }

    function g(a, c, d) {
    if (c || (c = b), l) return c.createElement(a);
    d || (d = f©);
    var e;
    return e = d.cache[a] ? d.cache[a].cloneNode() : p.test(a) ? (d.cache[a] = d.createElem(a)).cloneNode() : d.createElem(a), !e.canHaveChildren || o.test(a) || e.tagUrn ? e : d.frag.appendChild(e)
    }

    function h(a, c) {
    if (a || (a = b), l) return a.createDocumentFragment();
    c = c || f(a);
    for (var e = c.frag.cloneNode(), g = 0, h = d(), i = h.length; i > g; g++) e.createElement(h[g]);
    return e
    }

    function i(a, b) {
    b.cache || (b.cache = {}, b.createElem = a.createElement, b.createFrag = a.createDocumentFragment, b.frag = b.createFrag()), a.createElement = function © {
    return t.shivMethods ? g(c, a, b) : b.createElem©
    }, a.createDocumentFragment = Function(“h,f”, “return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(” + d().join().replace(/[\w-:]+/g, function (a) {
    return b.createElem(a), b.frag.createElement(a), ‘c("’ + a + ‘")’
    }) + “);return n}”)(t, b.frag)
    }

    function j(a) {
    a || (a = b);
    var d = f(a);
    return !t.shivCSS || k || d.hasCSS || (d.hasCSS = !!c(a, “article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}”)), l || i(a, d), a
    }

    var k, l, m = “3.7.3”, n = a.html5 || {}, o = /<|(?:button|map|select|textarea|object|iframe|option|optgroup)/i,p=/(?: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, p = /^(?: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,p=/(?:abcodedivfieldseth1h2h3h4h5h6ilabelliolpqspanstrongstyletabletbodytdthtrul)/i,
    q = “_html5shiv”, r = 0, s = {};
    !function () {
    try {
    var a = b.createElement(“a”);
    a.innerHTML = “”, k = “hidden” in a, l = 1 == a.childNodes.length || function () {
    b.createElement(“a”);
    var a = b.createDocumentFragment();
    return “undefined” == typeof a.cloneNode || “undefined” == typeof a.createDocumentFragment || “undefined” == typeof a.createElement
    }()
    } catch © {
    k = !0, l = !0
    }
    }();
    var t = {
    elements: n.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: m,
    shivCSS: n.shivCSS !== !1,
    supportsUnknownElements: l,
    shivMethods: n.shivMethods !== !1,
    type: “default”,
    shivDocument: j,
    createElement: g,
    createDocumentFragment: h,
    addElements: e
    };
    a.html5 = t, j(b), “object” == typeof module && module.exports && (module.exports = t)
    }(“undefined” != typeof window ? window : this, document);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值