<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://w.qdez.cc/wiki/MediaWiki:Common.js/history?feed=atom</id>
	<title>MediaWiki:Common.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://w.qdez.cc/wiki/MediaWiki:Common.js/history?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://w.qdez.cc/wiki/MediaWiki:Common.js/history"/>
	<updated>2026-04-05T22:21:24Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://w.qdez.cc/index.php?title=MediaWiki:Common.js&amp;diff=9&amp;oldid=prev</id>
		<title>Cloudwalk：​创建页面，内容为“/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */ /* 倒计时 */ (function ($) {     &#039;use strict&#039;;      var countdowns = [];     var NO_LEADING_ZEROS = 1,         SHORT_FORMAT = 2,         NO_ZEROS = 4;      function formatTime(unit, value, isShort) {         if (isShort) {             return value + &#039; &#039; + (unit === &#039;day&#039; ? &#039;d&#039; : unit[0]);         }         return value + &#039; &#039; + unit;     }      function output(i, diff) {…”</title>
		<link rel="alternate" type="text/html" href="https://w.qdez.cc/index.php?title=MediaWiki:Common.js&amp;diff=9&amp;oldid=prev"/>
		<updated>2026-02-18T16:46:07Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&lt;span class=&quot;autocomment&quot;&gt;这里的任何JavaScript将为所有用户在每次页面加载时加载。：​&lt;/span&gt; &lt;span class=&quot;autocomment&quot;&gt;倒计时：​&lt;/span&gt; (function ($) {     &amp;#039;use strict&amp;#039;;      var countdowns = [];     var NO_LEADING_ZEROS = 1,         SHORT_FORMAT = 2,         NO_ZEROS = 4;      function formatTime(unit, value, isShort) {         if (isShort) {             return value + &amp;#039; &amp;#039; + (unit === &amp;#039;day&amp;#039; ? &amp;#039;d&amp;#039; : unit[0]);         }         return value + &amp;#039; &amp;#039; + unit;     }      function output(i, diff) {…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */&lt;br /&gt;
/* 倒计时 */&lt;br /&gt;
(function ($) {&lt;br /&gt;
    &amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    var countdowns = [];&lt;br /&gt;
    var NO_LEADING_ZEROS = 1,&lt;br /&gt;
        SHORT_FORMAT = 2,&lt;br /&gt;
        NO_ZEROS = 4;&lt;br /&gt;
&lt;br /&gt;
    function formatTime(unit, value, isShort) {&lt;br /&gt;
        if (isShort) {&lt;br /&gt;
            return value + &amp;#039; &amp;#039; + (unit === &amp;#039;day&amp;#039; ? &amp;#039;d&amp;#039; : unit[0]);&lt;br /&gt;
        }&lt;br /&gt;
        return value + &amp;#039; &amp;#039; + unit;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function output(i, diff) {&lt;br /&gt;
        var delta, result, parts = [];&lt;br /&gt;
        var isShort = Boolean(countdowns[i].opts &amp;amp; SHORT_FORMAT);&lt;br /&gt;
        delta = diff % 60;&lt;br /&gt;
        parts.unshift(formatTime(&amp;#039;秒&amp;#039;, delta, isShort));&lt;br /&gt;
        diff = Math.floor(diff / 60);&lt;br /&gt;
        delta = diff % 60;&lt;br /&gt;
        parts.unshift(formatTime(&amp;#039;分&amp;#039;, delta, isShort));&lt;br /&gt;
        diff = Math.floor(diff / 60);&lt;br /&gt;
        delta = diff % 24;&lt;br /&gt;
        parts.unshift(formatTime(&amp;#039;小时&amp;#039;, delta, isShort));&lt;br /&gt;
        diff = Math.floor(diff / 24);&lt;br /&gt;
        parts.unshift(formatTime(&amp;#039;天&amp;#039;, diff, isShort));&lt;br /&gt;
&lt;br /&gt;
        if (countdowns[i].opts &amp;amp; NO_LEADING_ZEROS) {&lt;br /&gt;
            while (parts.length &amp;amp;&amp;amp; parts[0].startsWith(&amp;#039;0 &amp;#039;)) {&lt;br /&gt;
                parts.shift();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        if (countdowns[i].opts &amp;amp; NO_ZEROS) {&lt;br /&gt;
            parts = parts.filter(function (part) {&lt;br /&gt;
                return !part.startsWith(&amp;#039;0 &amp;#039;);&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (parts.length) {&lt;br /&gt;
            if (isShort) {&lt;br /&gt;
                countdowns[i].node.text(parts.join(&amp;#039; &amp;#039;));&lt;br /&gt;
            } else {&lt;br /&gt;
                // 不在分和秒之间加 &amp;quot;和&amp;quot;&lt;br /&gt;
                countdowns[i].node.text(parts.join(&amp;#039;, &amp;#039;));&lt;br /&gt;
            }&lt;br /&gt;
        } else {&lt;br /&gt;
            countdowns[i].node.text(&amp;#039;0 秒&amp;#039;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function end(i) {&lt;br /&gt;
        var c = countdowns[i].node.parent();&lt;br /&gt;
        switch (c.data(&amp;#039;end&amp;#039;)) {&lt;br /&gt;
            case &amp;#039;remove&amp;#039;:&lt;br /&gt;
                c.remove();&lt;br /&gt;
                return true;&lt;br /&gt;
            case &amp;#039;stop&amp;#039;:&lt;br /&gt;
                output(i, 0);&lt;br /&gt;
                return true;&lt;br /&gt;
            case &amp;#039;toggle&amp;#039;:&lt;br /&gt;
                var toggle = c.data(&amp;#039;toggle&amp;#039;);&lt;br /&gt;
                if (toggle &amp;amp;&amp;amp; toggle === &amp;#039;next&amp;#039;) {&lt;br /&gt;
                    c.next().show();&lt;br /&gt;
                    c.hide();&lt;br /&gt;
                    return true;&lt;br /&gt;
                }&lt;br /&gt;
                if (toggle &amp;amp;&amp;amp; $(toggle).length) {&lt;br /&gt;
                    $(toggle).show();&lt;br /&gt;
                    c.hide();&lt;br /&gt;
                    return true;&lt;br /&gt;
                }&lt;br /&gt;
                break;&lt;br /&gt;
            case &amp;#039;callback&amp;#039;:&lt;br /&gt;
                var callback = c.data(&amp;#039;callback&amp;#039;);&lt;br /&gt;
                if (callback &amp;amp;&amp;amp; typeof module[callback] === &amp;#039;function&amp;#039;) {&lt;br /&gt;
                    output(i, 0);&lt;br /&gt;
                    module[callback].call(c);&lt;br /&gt;
                    return true;&lt;br /&gt;
                }&lt;br /&gt;
                break;&lt;br /&gt;
        }&lt;br /&gt;
        countdowns[i].countup = true;&lt;br /&gt;
        output(i, 0);&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function update() {&lt;br /&gt;
        var now = Date.now();&lt;br /&gt;
        var countdownsToRemove = [];&lt;br /&gt;
        $.each(countdowns.slice(0), function (i, countdown) {&lt;br /&gt;
            var diff = Math.floor((countdown.date - now) / 1000);&lt;br /&gt;
            if (diff &amp;lt;= 0 &amp;amp;&amp;amp; !countdown.countup) {&lt;br /&gt;
                if (end(i)) countdownsToRemove.push(i);&lt;br /&gt;
            } else {&lt;br /&gt;
                output(i, diff);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        var x;&lt;br /&gt;
        while ((x = countdownsToRemove.pop()) !== undefined) {&lt;br /&gt;
            countdowns.splice(x, 1);&lt;br /&gt;
        }&lt;br /&gt;
        if (countdowns.length) {&lt;br /&gt;
            setTimeout(update, 1000);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function getOptions(node) {&lt;br /&gt;
        var text = node.parent().data(&amp;#039;options&amp;#039;),&lt;br /&gt;
            opts = 0;&lt;br /&gt;
        if (text) {&lt;br /&gt;
            if (/no-leading-zeros/.test(text)) {&lt;br /&gt;
                opts |= NO_LEADING_ZEROS;&lt;br /&gt;
            }&lt;br /&gt;
            if (/short-format/.test(text)) {&lt;br /&gt;
                opts |= SHORT_FORMAT;&lt;br /&gt;
            }&lt;br /&gt;
            if (/no-zeros/.test(text)) {&lt;br /&gt;
                opts |= NO_ZEROS;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return opts;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var countdown = $(&amp;#039;.countdown:not(.handled)&amp;#039;);&lt;br /&gt;
        if (!countdown.length) return;&lt;br /&gt;
        $(&amp;#039;.nocountdown&amp;#039;).hide();&lt;br /&gt;
        countdown&lt;br /&gt;
            .show()&lt;br /&gt;
            .find(&amp;#039;.countdowndate&amp;#039;)&lt;br /&gt;
            .each(function () {&lt;br /&gt;
                var $this = $(this),&lt;br /&gt;
                    date = (new Date($this.text())).valueOf();&lt;br /&gt;
                if (isNaN(date)) {&lt;br /&gt;
                    $this.text(&amp;#039;错误的日期格式&amp;#039;);&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
                countdowns.push({&lt;br /&gt;
                    node: $this,&lt;br /&gt;
                    opts: getOptions($this),&lt;br /&gt;
                    date: date,&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        countdown.addClass(&amp;#039;handled&amp;#039;);&lt;br /&gt;
        if (countdowns.length) {&lt;br /&gt;
            update();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 初始化倒计时&lt;br /&gt;
    init();&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Cloudwalk</name></author>
	</entry>
</feed>