<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-CollapsibleSidebar.js</id>
	<title>MediaWiki:Gadget-CollapsibleSidebar.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-CollapsibleSidebar.js"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-CollapsibleSidebar.js&amp;action=history"/>
	<updated>2026-07-16T19:19:53Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-CollapsibleSidebar.js&amp;diff=3631843&amp;oldid=prev</id>
		<title>imported&gt;Jimmy Xu：​per 92395142</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-CollapsibleSidebar.js&amp;diff=3631843&amp;oldid=prev"/>
		<updated>2026-04-25T15:06:34Z</updated>

		<summary type="html">&lt;p&gt;per 92395142&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;use strict&amp;#039;;&lt;br /&gt;
(function () {&lt;br /&gt;
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== &amp;quot;undefined&amp;quot; &amp;amp;&amp;amp; o[Symbol.iterator] || o[&amp;quot;@@iterator&amp;quot;]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike &amp;amp;&amp;amp; o &amp;amp;&amp;amp; typeof o.length === &amp;quot;number&amp;quot;) { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i &amp;gt;= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(&amp;quot;Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.&amp;quot;); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion &amp;amp;&amp;amp; it[&amp;quot;return&amp;quot;] != null) it[&amp;quot;return&amp;quot;](); } finally { if (didErr) throw err; } } }; }&lt;br /&gt;
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }&lt;br /&gt;
function _nonIterableRest() { throw new TypeError(&amp;quot;Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.&amp;quot;); }&lt;br /&gt;
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === &amp;quot;string&amp;quot;) return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === &amp;quot;Object&amp;quot; &amp;amp;&amp;amp; o.constructor) n = o.constructor.name; if (n === &amp;quot;Map&amp;quot; || n === &amp;quot;Set&amp;quot;) return Array.from(o); if (n === &amp;quot;Arguments&amp;quot; || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }&lt;br /&gt;
function _arrayLikeToArray(arr, len) { if (len == null || len &amp;gt; arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i &amp;lt; len; i++) arr2[i] = arr[i]; return arr2; }&lt;br /&gt;
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : &amp;quot;undefined&amp;quot; != typeof Symbol &amp;amp;&amp;amp; arr[Symbol.iterator] || arr[&amp;quot;@@iterator&amp;quot;]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) &amp;amp;&amp;amp; (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n &amp;amp;&amp;amp; null != _i[&amp;quot;return&amp;quot;] &amp;amp;&amp;amp; (_r = _i[&amp;quot;return&amp;quot;](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }&lt;br /&gt;
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }&lt;br /&gt;
$(function collapsibleSidebar() {&lt;br /&gt;
  var gadgetName = &amp;#039;ext.gadget.CollapsibleSidebar&amp;#039;;&lt;br /&gt;
  var commonImgUrl = &amp;#039;https://upload.wikimedia.org/wikipedia/commons/thumb&amp;#039;;&lt;br /&gt;
  var localImgUrl = &amp;#039;https://zh.wikipedia.org/static/images/mobile/copyright/wikipedia-wordmark-&amp;#039;;&lt;br /&gt;
  var imgLogoLang = [&amp;#039;ca&amp;#039;, &amp;#039;cs&amp;#039;, &amp;#039;cy&amp;#039;, &amp;#039;el&amp;#039;, &amp;#039;en&amp;#039;, &amp;#039;et&amp;#039;, &amp;#039;hi&amp;#039;, &amp;#039;hy&amp;#039;, &amp;#039;ja&amp;#039;, &amp;#039;ka&amp;#039;, &amp;#039;la&amp;#039;, &amp;#039;ru&amp;#039;, &amp;#039;szl&amp;#039;, &amp;#039;th&amp;#039;, &amp;#039;uk&amp;#039;, &amp;#039;uz&amp;#039;, &amp;#039;zh&amp;#039;].indexOf(mw.config.get(&amp;#039;wgContentLanguage&amp;#039;)) !== -1 ? mw.config.get(&amp;#039;wgContentLanguage&amp;#039;) : &amp;#039;en&amp;#039;;&lt;br /&gt;
  var images = {&lt;br /&gt;
    logo: localImgUrl + imgLogoLang + &amp;#039;.svg&amp;#039;,&lt;br /&gt;
    logo_zh_hans: localImgUrl + &amp;#039;zh-hans.svg&amp;#039;,&lt;br /&gt;
    next: commonImgUrl + &amp;#039;/9/95/Icons8_flat_next.svg/20px-Icons8_flat_next.svg.png&amp;#039;,&lt;br /&gt;
    prev: commonImgUrl + &amp;#039;/b/bd/Icons8_flat_previous.svg/20px-Icons8_flat_previous.svg.png&amp;#039;&lt;br /&gt;
  };&lt;br /&gt;
  var isMobile = /android|ipad|iphone|mobile/i.test(navigator.userAgent);&lt;br /&gt;
  var isWikipedia = mw.config.get(&amp;#039;wgNoticeProject&amp;#039;) === &amp;#039;wikipedia&amp;#039;;&lt;br /&gt;
  var $body = $(&amp;#039;body&amp;#039;);&lt;br /&gt;
  var $content = $(&amp;#039;#content&amp;#039;);&lt;br /&gt;
  var $footer = $(&amp;#039;#footer&amp;#039;);&lt;br /&gt;
  var $leftNavigation = $(&amp;#039;#left-navigation&amp;#039;);&lt;br /&gt;
  var $mwNavigation = $(&amp;#039;#mw-navigation&amp;#039;);&lt;br /&gt;
  var $mwWikiLogo = $(&amp;#039;.mw-wiki-logo&amp;#039;);&lt;br /&gt;
  var $mwPanel = $(&amp;#039;#mw-panel&amp;#039;);&lt;br /&gt;
  var isSidebarHide = false;&lt;br /&gt;
  var $items;&lt;br /&gt;
  var updatePositionHelper = function updatePositionHelper(positionLeftObject) {&lt;br /&gt;
    for (var _i = 0, _Object$entries = Object.entries(positionLeftObject); _i &amp;lt; _Object$entries.length; _i++) {&lt;br /&gt;
      var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),&lt;br /&gt;
        item = _Object$entries$_i[0],&lt;br /&gt;
        positionLeft = _Object$entries$_i[1];&lt;br /&gt;
      if (positionLeft === &amp;#039;&amp;#039;) {&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      var $element = $items[item];&lt;br /&gt;
      var currentPositionLeft = $element.css(&amp;#039;left&amp;#039;);&lt;br /&gt;
      if (currentPositionLeft !== positionLeft) {&lt;br /&gt;
        $element.css(&amp;#039;left&amp;#039;, positionLeft);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  var updatePosition = function updatePosition() {&lt;br /&gt;
    var _ref;&lt;br /&gt;
    var innerWidth = window.innerWidth;&lt;br /&gt;
    var outerWidth = window.outerWidth;&lt;br /&gt;
    var $bodyWidth = $body.width();&lt;br /&gt;
    var bodyWidth = (_ref = isMobile ? outerWidth &amp;gt; 0 ? outerWidth : $bodyWidth : innerWidth &amp;gt; 0 ? innerWidth : $bodyWidth) !== null &amp;amp;&amp;amp; _ref !== void 0 ? _ref : 0;&lt;br /&gt;
    if (bodyWidth &amp;gt;= 982) {&lt;br /&gt;
      updatePositionHelper(isSidebarHide ? {&lt;br /&gt;
        $sidebarCollapseButton: &amp;#039;0.3em&amp;#039;,&lt;br /&gt;
        $sliderCollapseLogo: &amp;#039;3em&amp;#039;&lt;br /&gt;
      } : {&lt;br /&gt;
        $sidebarCollapseButton: &amp;#039;10.3em&amp;#039;,&lt;br /&gt;
        $sliderCollapseLogo: &amp;#039;&amp;#039;&lt;br /&gt;
      });&lt;br /&gt;
    } else {&lt;br /&gt;
      updatePositionHelper(isSidebarHide ? {&lt;br /&gt;
        $sidebarCollapseButton: &amp;#039;0.3em&amp;#039;,&lt;br /&gt;
        $sliderCollapseLogo: &amp;#039;2.5em&amp;#039;&lt;br /&gt;
      } : {&lt;br /&gt;
        $sidebarCollapseButton: &amp;#039;9.3em&amp;#039;,&lt;br /&gt;
        $sliderCollapseLogo: &amp;#039;&amp;#039;&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  var hideSidebar = function hideSidebar() {&lt;br /&gt;
    isSidebarHide = true;&lt;br /&gt;
    $items.$sidebarCollapseButton.attr(&amp;#039;src&amp;#039;, images.next);&lt;br /&gt;
    updatePosition();&lt;br /&gt;
    $content.css(&amp;#039;margin-left&amp;#039;, &amp;#039;1em&amp;#039;);&lt;br /&gt;
    $footer.css(&amp;#039;margin-left&amp;#039;, &amp;#039;1em&amp;#039;);&lt;br /&gt;
    if (!isWikipedia) {&lt;br /&gt;
      $leftNavigation.css(&amp;#039;margin-left&amp;#039;, &amp;#039;1em&amp;#039;);&lt;br /&gt;
    }&lt;br /&gt;
    $mwPanel.hide();&lt;br /&gt;
    $items.$sliderCollapseLogo.show();&lt;br /&gt;
    mw.storage.set(gadgetName, &amp;#039;hide&amp;#039;);&lt;br /&gt;
  };&lt;br /&gt;
  var showSidebar = function showSidebar() {&lt;br /&gt;
    isSidebarHide = false;&lt;br /&gt;
    $items.$sidebarCollapseButton.attr(&amp;#039;src&amp;#039;, images.prev);&lt;br /&gt;
    updatePosition();&lt;br /&gt;
    $content.css(&amp;#039;margin-left&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
    $footer.css(&amp;#039;margin-left&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
    if (!isWikipedia) {&lt;br /&gt;
      $leftNavigation.css(&amp;#039;margin-left&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
    }&lt;br /&gt;
    $mwPanel.show();&lt;br /&gt;
    $items.$sliderCollapseLogo.hide();&lt;br /&gt;
    mw.storage.set(gadgetName, &amp;#039;show&amp;#039;);&lt;br /&gt;
  };&lt;br /&gt;
  var collapsibleSidebarMain = function collapsibleSidebarMain(observer) {&lt;br /&gt;
    observer === null || observer === void 0 ? void 0 : observer.disconnect();&lt;br /&gt;
    var $sidebarCollapseButton = $(&amp;#039;&amp;lt;img&amp;gt;&amp;#039;).attr({&lt;br /&gt;
      id: &amp;#039;sidebarCollapse&amp;#039;,&lt;br /&gt;
      src: images.prev,&lt;br /&gt;
      draggable: &amp;#039;false&amp;#039;&lt;br /&gt;
    }).css({&lt;br /&gt;
      cursor: &amp;#039;pointer&amp;#039;,&lt;br /&gt;
      position: &amp;#039;fixed&amp;#039;,&lt;br /&gt;
      top: &amp;#039;5.625em&amp;#039;,&lt;br /&gt;
      width: &amp;#039;0.8em&amp;#039;,&lt;br /&gt;
      &amp;#039;-moz-user-select&amp;#039;: &amp;#039;none&amp;#039;,&lt;br /&gt;
      &amp;#039;-webkit-user-select&amp;#039;: &amp;#039;none&amp;#039;,&lt;br /&gt;
      &amp;#039;user-select&amp;#039;: &amp;#039;none&amp;#039;,&lt;br /&gt;
      padding: &amp;#039;0.3em&amp;#039;,&lt;br /&gt;
      &amp;#039;border-radius&amp;#039;: &amp;#039;50px&amp;#039;,&lt;br /&gt;
      border: &amp;#039;1px solid #a7d7f9&amp;#039;,&lt;br /&gt;
      background: &amp;#039;#fff&amp;#039;&lt;br /&gt;
    });&lt;br /&gt;
    $sidebarCollapseButton.appendTo($mwNavigation);&lt;br /&gt;
    var $originMwLogo = $mwWikiLogo;&lt;br /&gt;
    var $newMwLogo = $originMwLogo.clone(false).empty().removeAttr(&amp;#039;class&amp;#039;).attr({&lt;br /&gt;
      id: &amp;#039;sidebarCollapseLink&amp;#039;,&lt;br /&gt;
      title: $originMwLogo.attr(&amp;#039;title&amp;#039;)&lt;br /&gt;
    });&lt;br /&gt;
    var $sliderCollapseLogo = $(&amp;#039;&amp;lt;img&amp;gt;&amp;#039;).addClass(&amp;#039;mw-no-invert&amp;#039;).attr({&lt;br /&gt;
      id: &amp;#039;sliderCollapseLogo&amp;#039;,&lt;br /&gt;
      src: mw.config.get(&amp;#039;wgContentLanguage&amp;#039;) === &amp;#039;zh&amp;#039; ? [&amp;#039;zh-cn&amp;#039;, &amp;#039;zh-hans&amp;#039;, &amp;#039;zh-my&amp;#039;, &amp;#039;zh-sg&amp;#039;].indexOf(mw.config.get(&amp;#039;wgUserLanguage&amp;#039;)) !== -1 ? images.logo_zh_hans : images.logo : images.logo&lt;br /&gt;
    }).css({&lt;br /&gt;
      cursor: &amp;#039;pointer&amp;#039;,&lt;br /&gt;
      position: &amp;#039;absolute&amp;#039;,&lt;br /&gt;
      top: &amp;#039;3em&amp;#039;,&lt;br /&gt;
      width: &amp;#039;7em&amp;#039;,&lt;br /&gt;
      display: &amp;#039;none&amp;#039;&lt;br /&gt;
    });&lt;br /&gt;
    if (isWikipedia) {&lt;br /&gt;
      $sliderCollapseLogo.appendTo($newMwLogo);&lt;br /&gt;
    }&lt;br /&gt;
    $newMwLogo.appendTo($mwNavigation);&lt;br /&gt;
    $items = {&lt;br /&gt;
      $sidebarCollapseButton: $sidebarCollapseButton,&lt;br /&gt;
      $sliderCollapseLogo: $sliderCollapseLogo&lt;br /&gt;
    };&lt;br /&gt;
    if (mw.storage.get(gadgetName) === &amp;#039;hide&amp;#039;) {&lt;br /&gt;
      hideSidebar();&lt;br /&gt;
    }&lt;br /&gt;
    updatePosition();&lt;br /&gt;
    $sidebarCollapseButton.on(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
      isSidebarHide ? showSidebar() : hideSidebar();&lt;br /&gt;
    }).on(&amp;#039;mouseout mouseover&amp;#039;, function (_ref2) {&lt;br /&gt;
      var type = _ref2.type;&lt;br /&gt;
      this.style.background = type === &amp;#039;mouseout&amp;#039; ? &amp;#039;#fff&amp;#039; : &amp;#039;rgb(223, 245, 255)&amp;#039;;&lt;br /&gt;
    });&lt;br /&gt;
    $(window).on(&amp;#039;resize&amp;#039;, function () {&lt;br /&gt;
      updatePosition();&lt;br /&gt;
    });&lt;br /&gt;
  };&lt;br /&gt;
  var collapsibleSidebarInit = function collapsibleSidebarInit() {&lt;br /&gt;
    if (!$body.hasClass(&amp;#039;skin-vector-legacy&amp;#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if ([&amp;#039;bo&amp;#039;, &amp;#039;dz&amp;#039;].indexOf(mw.config.get(&amp;#039;wgContentLanguage&amp;#039;)) !== -1 || $body.hasClass(&amp;#039;rtl&amp;#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!$mwNavigation.length) {&lt;br /&gt;
      var observer = new MutationObserver(function (mutations) {&lt;br /&gt;
        var _iterator = _createForOfIteratorHelper(mutations),&lt;br /&gt;
          _step;&lt;br /&gt;
        try {&lt;br /&gt;
          for (_iterator.s(); !(_step = _iterator.n()).done;) {&lt;br /&gt;
            var mutation = _step.value;&lt;br /&gt;
            var _iterator2 = _createForOfIteratorHelper(mutation.addedNodes),&lt;br /&gt;
              _step2;&lt;br /&gt;
            try {&lt;br /&gt;
              for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {&lt;br /&gt;
                var node = _step2.value;&lt;br /&gt;
                if (!(node instanceof HTMLElement)) {&lt;br /&gt;
                  continue;&lt;br /&gt;
                }&lt;br /&gt;
                if (node.id === &amp;#039;mw-navigation&amp;#039;) {&lt;br /&gt;
                  collapsibleSidebarMain(observer);&lt;br /&gt;
                  break;&lt;br /&gt;
                }&lt;br /&gt;
              }&lt;br /&gt;
            } catch (err) {&lt;br /&gt;
              _iterator2.e(err);&lt;br /&gt;
            } finally {&lt;br /&gt;
              _iterator2.f();&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        } catch (err) {&lt;br /&gt;
          _iterator.e(err);&lt;br /&gt;
        } finally {&lt;br /&gt;
          _iterator.f();&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
      observer.observe(document.documentElement, {&lt;br /&gt;
        childList: true&lt;br /&gt;
      });&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    collapsibleSidebarMain();&lt;br /&gt;
  };&lt;br /&gt;
  collapsibleSidebarInit();&lt;br /&gt;
});&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>imported&gt;Jimmy Xu</name></author>
	</entry>
</feed>