“MediaWiki:Common.js”的版本间的差异

来自百问网嵌入式Linux wiki
第1行: 第1行:
var usesClass = (function() {
 
    var reCache = {};
 
    return function(element, className) {
 
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
 
    };
 
})();
 
 
/* JavaScript for rounding borders
 
  Source: http://webdesign.html.it/articoli/leggi/528/more-nifty-corners */
 
 
function NiftyCheck() {
 
    if (!document.getElementById || !document.createElement)
 
        return (false);
 
    isXHTML = /html\:/.test(document.getElementsByTagName('body')[0].nodeName);
 
    if (Array.prototype.push == null) {
 
        Array.prototype.push = function() {
 
            this[this.length] = arguments[0];
 
            return (this.length);
 
        }
 
    }
 
    return (true);
 
}
 
 
function Rounded(selector, wich, bk, color, opt) {
 
    var i, prefixt, prefixb, cn = "r",
 
        ecolor = "",
 
        edges = false,
 
        eclass = "",
 
        b = false,
 
        t = false;
 
 
    if (color == "transparent") {
 
        cn = cn + "x";
 
        ecolor = bk;
 
        bk = "transparent";
 
    } else if (opt && opt.indexOf("border") >= 0) {
 
        var optar = opt.split(" ");
 
        for (i = 0; i < optar.length; i++)
 
            if (optar[i].indexOf("#") >= 0) ecolor = optar[i];
 
        if (ecolor == "") ecolor = "#666";
 
        cn += "e";
 
        edges = true;
 
    } else if (opt && opt.indexOf("smooth") >= 0) {
 
        cn += "a";
 
        ecolor = Mix(bk, color);
 
    }
 
    if (opt && opt.indexOf("small") >= 0) cn += "s";
 
    prefixt = cn;
 
    prefixb = cn;
 
    if (wich.indexOf("all") >= 0) {
 
        t = true;
 
        b = true
 
    } else if (wich.indexOf("top") >= 0) t = "true";
 
    else if (wich.indexOf("tl") >= 0) {
 
        t = "true";
 
        if (wich.indexOf("tr") < 0) prefixt += "l";
 
    } else if (wich.indexOf("tr") >= 0) {
 
        t = "true";
 
        prefixt += "r";
 
    }
 
    if (wich.indexOf("bottom") >= 0) b = true;
 
    else if (wich.indexOf("bl") >= 0) {
 
        b = "true";
 
        if (wich.indexOf("br") < 0) prefixb += "l";
 
    } else if (wich.indexOf("br") >= 0) {
 
        b = "true";
 
        prefixb += "r";
 
    }
 
    var v = getElementsBySelector(selector);
 
    var l = v.length;
 
    for (i = 0; i < l; i++) {
 
        if (edges) AddBorder(v[i], ecolor);
 
        if (t) AddTop(v[i], bk, color, ecolor, prefixt);
 
        if (b) AddBottom(v[i], bk, color, ecolor, prefixb);
 
    }
 
}
 
 
function AddBorder(el, bc) {
 
    var i;
 
    if (!el.passed) {
 
        if (el.childNodes.length == 1 && el.childNodes[0].nodeType == 3) {
 
            var t = el.firstChild.nodeValue;
 
            el.removeChild(el.lastChild);
 
            var d = CreateEl("span");
 
            d.style.display = "block";
 
            d.appendChild(document.createTextNode(t));
 
            el.appendChild(d);
 
        }
 
        for (i = 0; i < el.childNodes.length; i++) {
 
            if (el.childNodes[i].nodeType == 1) {
 
                el.childNodes[i].style.borderLeft = "1px solid " + bc;
 
                el.childNodes[i].style.borderRight = "1px solid " + bc;
 
            }
 
        }
 
    }
 
    el.passed = true;
 
}
 
 
function AddTop(el, bk, color, bc, cn) {
 
    var i, lim = 4,
 
        d = CreateEl("b");
 
 
    if (cn.indexOf("s") >= 0) lim = 2;
 
    if (bc) d.className = "artop";
 
    else d.className = "rtop";
 
    d.style.backgroundColor = bk;
 
    for (i = 1; i <= lim; i++) {
 
        var x = CreateEl("b");
 
        x.className = cn + i;
 
        x.style.backgroundColor = color;
 
        if (bc) x.style.borderColor = bc;
 
        d.appendChild(x);
 
    }
 
    el.style.paddingTop = 0;
 
    el.insertBefore(d, el.firstChild);
 
}
 
 
function AddBottom(el, bk, color, bc, cn) {
 
    var i, lim = 4,
 
        d = CreateEl("b");
 
 
    if (cn.indexOf("s") >= 0) lim = 2;
 
    if (bc) d.className = "artop";
 
    else d.className = "rtop";
 
    d.style.backgroundColor = bk;
 
    for (i = lim; i > 0; i--) {
 
        var x = CreateEl("b");
 
        x.className = cn + i;
 
        x.style.backgroundColor = color;
 
        if (bc) x.style.borderColor = bc;
 
        d.appendChild(x);
 
    }
 
    el.style.paddingBottom = 0;
 
    el.appendChild(d);
 
}
 
 
function CreateEl(x) {
 
    if (isXHTML) return (document.createElementNS('http://www.w3.org/1999/xhtml', x));
 
    else return (document.createElement(x));
 
}
 
 
function getElementsBySelector(selector) {
 
    var i, selid = "",
 
        selclass = "",
 
        tag = selector,
 
        f, s = [],
 
        objlist = [];
 
 
    if (selector.indexOf(" ") > 0) { //descendant selector like "tag#id tag"
 
        s = selector.split(" ");
 
        var fs = s[0].split("#");
 
        if (fs.length == 1) return (objlist);
 
        f = document.getElementById(fs[1]);
 
        if (f) return (f.getElementsByTagName(s[1]));
 
        return (objlist);
 
    }
 
    if (selector.indexOf("#") > 0) { //id selector like "tag#id"
 
        s = selector.split("#");
 
        tag = s[0];
 
        selid = s[1];
 
    }
 
    if (selid != "") {
 
        f = document.getElementById(selid);
 
        if (f) objlist.push(f);
 
        return (objlist);
 
    }
 
    if (selector.indexOf(".") > 0) { //class selector like "tag.class"
 
        s = selector.split(".");
 
        tag = s[0];
 
        selclass = s[1];
 
    }
 
    var v = document.getElementsByTagName(tag); // tag selector like "tag"
 
    if (selclass == "")
 
        return (v);
 
    for (i = 0; i < v.length; i++) {
 
        if (v[i].className.indexOf(selclass) >= 0) {
 
            objlist.push(v[i]);
 
        }
 
    }
 
    return (objlist);
 
}
 
 
function Mix(c1, c2) {
 
    var i, step1, step2, x, y, r = new Array(3);
 
    if (c1.length == 4) step1 = 1;
 
    else step1 = 2;
 
    if (c2.length == 4) step2 = 1;
 
    else step2 = 2;
 
    for (i = 0; i < 3; i++) {
 
        x = parseInt(c1.substr(1 + step1 * i, step1), 16);
 
        if (step1 == 1) x = 16 * x + x;
 
        y = parseInt(c2.substr(1 + step2 * i, step2), 16);
 
        if (step2 == 1) y = 16 * y + y;
 
        r[i] = Math.floor((x * 50 + y * 50) / 100);
 
    }
 
    return ("#" + r[0].toString(16) + r[1].toString(16) + r[2].toString(16));
 
}
 
 
 
 
function setStyleById(i, p, v) {
 
    var n = document.getElementById(i);
 
    n.style[p] = v;
 
}
 
 
/* Add a hook to perform code on every pageload */
 
addOnloadHook(performIE);
 
 
function performIE() {
 
    if (-1 != navigator.userAgent.indexOf("MSIE")) {
 
        /* perform Microsoft Internet Explorer-specific subs */
 
        var Divs = document.getElementsByTagName("div");
 
        var divCnt = 0;
 
        var divID = "";
 
        if (Divs.length > 0) {
 
            var CurrDiv = Divs[0];
 
            var s = "";
 
            while (Divs.length > divCnt) {
 
                s = eval("CurrDiv.style.ietop");
 
                if ((s != "") && (s != null)) {
 
                    divID = "mapDiv" + divCnt;
 
                    CurrDiv.setAttribute("id", divID);
 
                    setStyleById(divID, "top", CurrDiv.style.ietop);
 
                }
 
                divCnt++;
 
                CurrDiv = Divs[divCnt];
 
            }
 
        }
 
    }
 
}
 
 
//Get Ad Dart Number
 
var randDARTNumber = 0;
 
 
function genSetRandDARTNumber() {
 
    randDARTNumber = Math.round(Math.random() * 1000000000000);
 
}
 
genSetRandDARTNumber();
 
 
/* </pre> */
 
 
/*********百度主动推送代码***********/
 
/*********百度主动推送代码***********/
 
<script>
 
<script>

2018年2月28日 (三) 09:50的版本

/*********百度主动推送代码***********/
<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>


/*******360主动收录代码**************/
<script>(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?9d91b9d962051daef41972684348663d":"https://jspassport.ssl.qhimg.com/11.0.1.js?9d91b9d962051daef41972684348663d";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>