<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://tnfshwiki.tfcis.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-contribsrange.js</id>
	<title>MediaWiki:Gadget-contribsrange.js - 修訂歷史</title>
	<link rel="self" type="application/atom+xml" href="https://tnfshwiki.tfcis.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-contribsrange.js"/>
	<link rel="alternate" type="text/html" href="https://tnfshwiki.tfcis.org/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;action=history"/>
	<updated>2026-04-07T17:38:30Z</updated>
	<subtitle>本 Wiki 上此頁面的修訂歷史</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://tnfshwiki.tfcis.org/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;diff=6006&amp;oldid=prev</id>
		<title>Xiplus：​已匯入 1 筆修訂</title>
		<link rel="alternate" type="text/html" href="https://tnfshwiki.tfcis.org/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;diff=6006&amp;oldid=prev"/>
		<updated>2016-10-16T00:28:47Z</updated>

		<summary type="html">&lt;p&gt;已匯入 1 筆修訂&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hant-TW&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上個修訂&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;於 2016年10月16日 (日) 08:28 的修訂&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key tnfshwiki-tnfshwiki_:diff:wikidiff2:1.12:old-6005:rev-6006:1.13.0 --&gt;
&lt;/table&gt;</summary>
		<author><name>Xiplus</name></author>
	</entry>
	<entry>
		<id>https://tnfshwiki.tfcis.org/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;diff=6005&amp;oldid=prev</id>
		<title>zhwiki&gt;范：​取消范（对话）的编辑；更改回Jimmy Xu的最后一个版本</title>
		<link rel="alternate" type="text/html" href="https://tnfshwiki.tfcis.org/index.php?title=MediaWiki:Gadget-contribsrange.js&amp;diff=6005&amp;oldid=prev"/>
		<updated>2015-08-24T08:34:06Z</updated>

		<summary type="html">&lt;p&gt;取消&lt;a href=&quot;/%E7%89%B9%E6%AE%8A:%E4%BD%BF%E7%94%A8%E8%80%85%E8%B2%A2%E7%8D%BB/%E8%8C%83&quot; title=&quot;特殊:使用者貢獻/范&quot;&gt;范&lt;/a&gt;（&lt;a href=&quot;/index.php?title=%E4%BD%BF%E7%94%A8%E8%80%85%E8%A8%8E%E8%AB%96:%E8%8C%83&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;使用者討論:范（頁面不存在）&quot;&gt;对话&lt;/a&gt;）的编辑；更改回&lt;a href=&quot;/%E7%89%B9%E6%AE%8A:%E4%BD%BF%E7%94%A8%E8%80%85%E8%B2%A2%E7%8D%BB/Jimmy_Xu&quot; title=&quot;特殊:使用者貢獻/Jimmy Xu&quot;&gt;Jimmy Xu&lt;/a&gt;的最后一个版本&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//  _________________________________________________________________________________________&lt;br /&gt;
// |                                                                                         |&lt;br /&gt;
// |                    === WARNING: GLOBAL GADGET FILE ===                                  |&lt;br /&gt;
// |                  Changes to this page affect many users.                                |&lt;br /&gt;
// | Please discuss changes on the talk page or on [[Wikipedia_talk:Gadget]] before editing. |&lt;br /&gt;
// |_________________________________________________________________________________________|&lt;br /&gt;
//&lt;br /&gt;
// Imported from version 312947638 as of September 10, 2009 from [[User:Splarka/contribsrange.js]]&lt;br /&gt;
// See notes below&lt;br /&gt;
&lt;br /&gt;
/* Special:Contributions Wildcard/CIDR lookup, version [0.2.7]&lt;br /&gt;
Originally from: https://en.wikipedia.org/wiki/User:Splarka/contribsrange.js&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Uses the API which is faster than most CIDR contrib tools.&lt;br /&gt;
** Needs 1.14 r42198+ for advanced continue.&lt;br /&gt;
* Currently uses a GET json via &amp;lt;script src=&amp;quot;&amp;quot;&amp;gt; to avoid ajax problems.&lt;br /&gt;
* Only currently works if submitted (or called by URL parameter, eg Special:Contributions/User).&lt;br /&gt;
** Checks namespace and date options in form.&lt;br /&gt;
** Also utilizes &amp;amp;ucstart and &amp;amp;ucend date parameters if supplied manually (not supported in the UI atm).&lt;br /&gt;
*** These parameter soverride the form date options.&lt;br /&gt;
* Uses: Submit any IP CIDR range /16 or from /24 to /32. Submit any string (at least 3 characters) with a suffixed asterisk.&lt;br /&gt;
** eg: [123.123.123.0/24 ] or [123.123.123.* ] or [Willy* ].&lt;br /&gt;
* Now keeps searching until it finds crMax (or forever with crshowall=true URI parameter).&lt;br /&gt;
** Puts them in a nice collapsed div stack, like enhanced recent changes.&lt;br /&gt;
* /25 and /26 ranges now disabled, since they are inaccurate (50 parameter limit), please use /24 (ucuserprefix) or /27 (32 parameters)&lt;br /&gt;
&lt;br /&gt;
To do:&lt;br /&gt;
* use ajax (let sysops/bots = 5000)?&lt;br /&gt;
*/&lt;br /&gt;
/*jshint scripturl:true*/&lt;br /&gt;
/*global jQuery, mediaWiki, prefixContribs, prefixContribsToggleDiv, prefixContribsToggleAll */&lt;br /&gt;
( function ( mw, $ ) {&lt;br /&gt;
&lt;br /&gt;
function prefixContribsInit() {&lt;br /&gt;
  var options;&lt;br /&gt;
  var show = document.getElementById(&amp;#039;contentSub&amp;#039;) || document.getElementById(&amp;#039;topbar&amp;#039;);&lt;br /&gt;
  if(show) show.appendChild(document.createTextNode(wgULS(&lt;br /&gt;
    &amp;#039; \u2022 高级贡献查询已启动，请输入IP的CIDR型态区段（/16或/24~/32）或前缀字串进行搜寻（如Ben*）。&amp;#039;,&lt;br /&gt;
    &amp;#039; \u2022 進階貢獻查詢已啟動，請輸入IP的CIDR型態區段（/16或/24~/32）或前綴字串進行搜尋（如Ben*）。&amp;#039;)));&lt;br /&gt;
  var ucfrm = document.getElementsByTagName(&amp;#039;form&amp;#039;)[0];&lt;br /&gt;
  if(!ucfrm.target) return;&lt;br /&gt;
&lt;br /&gt;
  //general optionlets independent of type of search.&lt;br /&gt;
  var opt_ns = &amp;quot;&amp;quot;;&lt;br /&gt;
  if( typeof ucfrm.namespace != &amp;quot;undefined&amp;quot; ) {&lt;br /&gt;
    opt_ns = (parseInt(ucfrm.namespace[ucfrm.namespace.selectedIndex].value) &amp;gt; -1) ? &amp;#039;&amp;amp;ucnamespace=&amp;#039; + ucfrm.namespace[ucfrm.namespace.selectedIndex].value : &amp;#039;&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  var opt_ts = &amp;#039;&amp;#039;;&lt;br /&gt;
  var m = parseInt(ucfrm.month.value);&lt;br /&gt;
  var y = parseInt(ucfrm.year.value);&lt;br /&gt;
  if(m == -1 || m == 12) {&lt;br /&gt;
    y = y + 1;&lt;br /&gt;
    m = 1;&lt;br /&gt;
  } else {&lt;br /&gt;
    m = m + 1;&lt;br /&gt;
  }&lt;br /&gt;
  m = &amp;#039;&amp;#039; + m;&lt;br /&gt;
  y = &amp;#039;&amp;#039; + y;&lt;br /&gt;
  if(m.length == 1) m = &amp;#039;0&amp;#039; + m;&lt;br /&gt;
  if(y &amp;gt; 2000 &amp;amp;&amp;amp; y &amp;lt; 2100) opt_ts = &amp;#039;&amp;amp;ucstart=&amp;#039; + y + &amp;#039;-&amp;#039; + m + &amp;#039;-00T23:59:59Z&amp;#039;;&lt;br /&gt;
  var opts_se = &amp;#039;&amp;#039;;&lt;br /&gt;
  if(queryString(&amp;#039;ucstart&amp;#039;)) opts_se += &amp;#039;&amp;amp;ucstart=&amp;#039; + encodeURIComponent(queryString(&amp;#039;ucstart&amp;#039;));&lt;br /&gt;
  if(queryString(&amp;#039;ucend&amp;#039;)) opts_se += &amp;#039;&amp;amp;ucend=&amp;#039; + encodeURIComponent(queryString(&amp;#039;ucend&amp;#039;));&lt;br /&gt;
  if(opts_se === &amp;#039;&amp;#039;) {&lt;br /&gt;
    options = opt_ns + opt_ts;&lt;br /&gt;
  } else {&lt;br /&gt;
    options = opt_ns + opts_se + &amp;#039;&amp;amp;ucdir=newer&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var patternCIDR = /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/(2[7-9]|3[0-2]|24|16)/i ;&lt;br /&gt;
  var patternWild = /^.{3,}\*$/i ;&lt;br /&gt;
  var url = mw.config.get(&amp;#039;wgServer&amp;#039;) + mw.config.get(&amp;#039;wgScriptPath&amp;#039;) + &amp;#039;/api.php?action=query&amp;amp;format=json&amp;amp;callback=prefixContribs&amp;amp;rawcontinue=&amp;amp;list=usercontribs&amp;#039; + options + &amp;#039;&amp;amp;uclimit=&amp;#039; + parseInt(crLimit);&lt;br /&gt;
  if(ucfrm.target.value.search(patternCIDR) === 0) {&lt;br /&gt;
    prefixContribsStartbox(ucfrm.parentNode);&lt;br /&gt;
    var cidr = ucfrm.target.value.match(patternCIDR)[0];&lt;br /&gt;
    var range = cidr.match(/[^\/]\d{1,2}$/i)[0];&lt;br /&gt;
    if(range == 24 || range == 16) {&lt;br /&gt;
      //prefixable CIDR, lets do-er&lt;br /&gt;
      if(range == 24) {&lt;br /&gt;
        cidr = cidr.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\./)[0];&lt;br /&gt;
      } else {&lt;br /&gt;
        cidr = cidr.match(/\d{1,3}\.\d{1,3}\./)[0];&lt;br /&gt;
      }&lt;br /&gt;
      url += &amp;#039;&amp;amp;ucuserprefix=&amp;#039; + cidr;&lt;br /&gt;
    } else {&lt;br /&gt;
      //complex CIDR, lets figure it out&lt;br /&gt;
      var oct3 = cidr.match(/\.\d{1,3}\//i)[0].replace(/(\.|\/)/g,&amp;#039;&amp;#039;);&lt;br /&gt;
      cidr = cidr.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\./)[0];&lt;br /&gt;
      var num = Math.pow(2,32 - range);&lt;br /&gt;
      var start = oct3 - oct3 % num;&lt;br /&gt;
      url += &amp;#039;&amp;amp;ucuser=&amp;#039;;&lt;br /&gt;
      for(var i=start;i&amp;lt;=start + num;i++) {&lt;br /&gt;
        url += &amp;#039;&amp;#039; + cidr + i;&lt;br /&gt;
        if(i != start + num) url += &amp;#039;|&amp;#039;;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  } else if(ucfrm.target.value.search(patternWild) === 0) {&lt;br /&gt;
    //very simple wildcard, lets do-er&lt;br /&gt;
    prefixContribsStartbox(ucfrm.parentNode);&lt;br /&gt;
    var prefix = ucfrm.target.value.replace(/\*$/,&amp;#039;&amp;#039;);&lt;br /&gt;
    prefix = prefix.substr(0,1).toUpperCase() + prefix.substr(1);&lt;br /&gt;
    url += &amp;#039;&amp;amp;ucuserprefix=&amp;#039; + prefix;&lt;br /&gt;
  }&lt;br /&gt;
  mw.loader.load(url);&lt;br /&gt;
  crContURI = url;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function prefixContribsStartbox(parent) {&lt;br /&gt;
  var res = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
  res.setAttribute(&amp;#039;id&amp;#039;,&amp;#039;results-from-CIDR&amp;#039;);&lt;br /&gt;
  $(&amp;#039;.mw-userpage-userdoesnotexist&amp;#039;).hide();&lt;br /&gt;
  addlinkchild(res,&amp;#039;javascript:prefixContribsToggleAll();&amp;#039;,wgULS(&amp;#039;全部展开&amp;#039;, &amp;#039;全部展開&amp;#039;),&amp;#039;prefixcontribs-tog&amp;#039;);&lt;br /&gt;
  var spin = document.createElement(&amp;#039;span&amp;#039;);&lt;br /&gt;
   spin.setAttribute(&amp;#039;id&amp;#039;,&amp;#039;prefixcontribs-prog&amp;#039;);&lt;br /&gt;
   spin.appendChild(document.createTextNode(wgULS(&amp;#039;搜索中⋯⋯&amp;#039;, &amp;#039;搜尋中⋯⋯&amp;#039;)));&lt;br /&gt;
  res.appendChild(spin);&lt;br /&gt;
  $(spin).injectSpinner(&amp;#039;prefixcontribs-spin&amp;#039;);&lt;br /&gt;
  parent.appendChild(res);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.prefixContribs = function (obj) {&lt;br /&gt;
  if(!obj.query || !obj.query.usercontribs) return;&lt;br /&gt;
  var cidr = obj.query.usercontribs;&lt;br /&gt;
  var res = document.getElementById(&amp;#039;results-from-CIDR&amp;#039;);&lt;br /&gt;
  if(!cidr.length) {&lt;br /&gt;
    res.appendChild(document.createTextNode(wgULS(&amp;#039;没有找到符合特征的更改。&amp;#039;, &amp;#039;沒有找到符合特徵的更改。&amp;#039;)));&lt;br /&gt;
    $.removeSpinner(&amp;#039;prefixcontribs-spin&amp;#039;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  for(var i=0;i&amp;lt;cidr.length;i++) {&lt;br /&gt;
    var id = &amp;#039;cr-&amp;#039; + escapeID(cidr[i].user);&lt;br /&gt;
    // group each result set based on the user name, create new div for new names&lt;br /&gt;
    if(!document.getElementById(id)) {&lt;br /&gt;
      var hdiv = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
      hdiv.setAttribute(&amp;#039;id&amp;#039;,&amp;#039;d-&amp;#039; + id);&lt;br /&gt;
      addlinkchild(hdiv,&amp;#039;javascript:prefixContribsToggleDiv(&amp;quot;&amp;#039; + id +&amp;#039;&amp;quot;)&amp;#039;,cidr[i].user,&amp;#039;m-&amp;#039; + id,&amp;#039;cr-toggle-hidden&amp;#039;);&lt;br /&gt;
      res.appendChild(hdiv);&lt;br /&gt;
      res.appendChild(document.createTextNode(&amp;#039;\n&amp;#039;));&lt;br /&gt;
      var rul = document.createElement(&amp;#039;ul&amp;#039;);&lt;br /&gt;
       rul.setAttribute(&amp;#039;id&amp;#039;,id);&lt;br /&gt;
       rul.setAttribute(&amp;#039;class&amp;#039;,&amp;#039;cr-list&amp;#039;);&lt;br /&gt;
       rul.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
      res.appendChild(rul);&lt;br /&gt;
      res.appendChild(document.createTextNode(&amp;#039;\n&amp;#039;));&lt;br /&gt;
    }&lt;br /&gt;
    var ul = document.getElementById(id);&lt;br /&gt;
    ul.appendChild(document.createTextNode(&amp;#039;\n&amp;#039;));&lt;br /&gt;
    var li = document.createElement(&amp;#039;li&amp;#039;);&lt;br /&gt;
     li.appendChild(document.createTextNode(cidr[i].timestamp.replace(/T[\d:]*Z/,&amp;#039; &amp;#039;)));&lt;br /&gt;
     addlinkchild(li, mw.util.getUrl( &amp;#039;Special:Contributions/&amp;#039; + cidr[i].user ), cidr[i].user);&lt;br /&gt;
     li.appendChild(document.createTextNode(&amp;#039;（&amp;#039;));&lt;br /&gt;
     addlinkchild(li, mw.util.getUrl( &amp;#039;User_talk:&amp;#039; + cidr[i].user ), wgULS(&amp;quot;对话&amp;quot;, &amp;quot;對話&amp;quot;),&amp;#039;&amp;#039;,&amp;#039;mw-mightexist&amp;#039;);&lt;br /&gt;
     li.appendChild(document.createTextNode(wgULS(&amp;quot;) 编辑了 (&amp;quot;,&amp;quot;) 编辑了 (&amp;quot;)));&lt;br /&gt;
     addlinkchild(li, mw.util.getUrl( cidr[i].title, { curid: cidr[i].pageid, diff: &amp;#039;prev&amp;#039;, oldid: cidr[i].revid } ), &amp;#039;diff&amp;#039;);&lt;br /&gt;
     li.appendChild(document.createTextNode(&amp;#039;）&amp;#039;));&lt;br /&gt;
     addlinkchild(li, mw.util.getUrl( cidr[i].title, { curid: cidr[i].pageid } ), cidr[i].title);&lt;br /&gt;
     if(cidr[i].comment) li.appendChild(document.createTextNode(&amp;#039; (&amp;#039; + cidr[i].comment + &amp;#039;)&amp;#039;));&lt;br /&gt;
    ul.appendChild(li);&lt;br /&gt;
  }&lt;br /&gt;
  //continue?&lt;br /&gt;
  crMax = crMax - cidr.length;&lt;br /&gt;
  var prog = document.getElementById(&amp;#039;prefixcontribs-prog&amp;#039;);&lt;br /&gt;
  if(!obj[&amp;#039;query-continue&amp;#039;] || !obj[&amp;#039;query-continue&amp;#039;].usercontribs || !obj[&amp;#039;query-continue&amp;#039;].usercontribs.uccontinue) {&lt;br /&gt;
    $.removeSpinner(&amp;#039;prefixcontribs-spin&amp;#039;);&lt;br /&gt;
    prog.parentNode.removeChild(prog);&lt;br /&gt;
    prefixContribsNumerate();&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  var url = crContURI + &amp;#039;&amp;amp;uccontinue=&amp;#039;+ obj[&amp;#039;query-continue&amp;#039;].usercontribs.uccontinue;&lt;br /&gt;
  if(crMax &amp;lt;= 0 &amp;amp;&amp;amp; queryString(&amp;#039;crshowall&amp;#039;) != &amp;#039;true&amp;#039;) {&lt;br /&gt;
    prog.appendChild(document.createTextNode(wgULS(&amp;quot;找到大量编辑，查看所有编辑请点击&amp;quot;,&amp;quot;找到大量編輯，查看所有編輯請點擊&amp;quot;)));&lt;br /&gt;
    var ga = document.createElement(&amp;#039;a&amp;#039;);&lt;br /&gt;
     var gaurl = document.location.href;&lt;br /&gt;
     if(gaurl.indexOf(&amp;#039;#&amp;#039;) != -1) gaurl = gaurl.substr(0,gaurl.indexOf(&amp;#039;#&amp;#039;));&lt;br /&gt;
     if(gaurl.indexOf(&amp;#039;?&amp;#039;) == -1) gaurl += &amp;#039;?&amp;#039;;&lt;br /&gt;
     gaurl += &amp;#039;&amp;amp;crshowall=true&amp;#039;;&lt;br /&gt;
     ga.setAttribute(&amp;#039;href&amp;#039;,gaurl);&lt;br /&gt;
     ga.appendChild(document.createTextNode(wgULS(&amp;quot;此处&amp;quot;,&amp;quot;此處&amp;quot;)));&lt;br /&gt;
    prog.appendChild(ga);&lt;br /&gt;
    prog.appendChild(document.createTextNode(wgULS(&amp;quot;。（警告：可能导致浏览器崩溃！）&amp;quot;,&amp;quot;。（警告：可能導致瀏覽器崩潰！）&amp;quot;)));&lt;br /&gt;
    $.removeSpinner(&amp;#039;prefixcontribs-spin&amp;#039;);&lt;br /&gt;
    prefixContribsNumerate();&lt;br /&gt;
  } else {&lt;br /&gt;
    prog.appendChild(document.createTextNode(&amp;#039;.&amp;#039;));&lt;br /&gt;
    mw.loader.load(url);&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
function prefixContribsNumerate() {&lt;br /&gt;
  var lsts = $( &amp;#039;ul.cr-list&amp;#039; );&lt;br /&gt;
  for(var i=0;i&amp;lt;lsts.length;i++) {&lt;br /&gt;
    var dv = document.getElementById(&amp;#039;d-&amp;#039; + lsts[i].getAttribute(&amp;#039;id&amp;#039;));&lt;br /&gt;
    dv.appendChild(document.createTextNode(&amp;#039; &amp;#039; + lsts[i].getElementsByTagName(&amp;#039;li&amp;#039;).length + wgULS(&amp;quot;次编辑&amp;quot;,&amp;quot;次編輯&amp;quot;)));&lt;br /&gt;
  }&lt;br /&gt;
  if(lsts.length == 1) prefixContribsToggleDiv(lsts[0].id);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.prefixContribsToggleAll = function () {&lt;br /&gt;
  var lsts = $( &amp;#039;ul.cr-list&amp;#039; );&lt;br /&gt;
  if(!lsts.length) return;&lt;br /&gt;
  var togglefrom = lsts[0].style.display;&lt;br /&gt;
  for(var i=0;i&amp;lt;lsts.length;i++) {&lt;br /&gt;
    if(lsts[i].style.display == togglefrom) prefixContribsToggleDiv(lsts[i].id);&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
window.prefixContribsToggleDiv = function (id) {&lt;br /&gt;
  var i = document.getElementById(id);&lt;br /&gt;
  var m = document.getElementById(&amp;#039;m-&amp;#039; + id);&lt;br /&gt;
  if(!i || !m) return;&lt;br /&gt;
  if(i.style.display == &amp;#039;none&amp;#039;) {&lt;br /&gt;
    i.style.display = &amp;#039;block&amp;#039;;&lt;br /&gt;
    m.className = &amp;#039;cr-toggle-shown&amp;#039;;&lt;br /&gt;
  } else {&lt;br /&gt;
    i.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
    m.className = &amp;#039;cr-toggle-hidden&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
function addlinkchild(obj,href,text,id,classes) {&lt;br /&gt;
  if(!obj || !href || !text) return false;&lt;br /&gt;
  var a = document.createElement(&amp;#039;a&amp;#039;);&lt;br /&gt;
  a.setAttribute(&amp;#039;href&amp;#039;,href);&lt;br /&gt;
  a.appendChild(document.createTextNode(text));&lt;br /&gt;
  if(id) a.setAttribute(&amp;#039;id&amp;#039;,id);&lt;br /&gt;
  if(classes) a.setAttribute(&amp;#039;class&amp;#039;,classes);&lt;br /&gt;
  obj.appendChild(a);&lt;br /&gt;
  return a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function escapeID(txt) {&lt;br /&gt;
  var id = txt;&lt;br /&gt;
  id = id.replace(/ /g,&amp;#039;_&amp;#039;);&lt;br /&gt;
  id = encodeURIComponent(id);&lt;br /&gt;
  id = id.replace(/\%3A/g,&amp;#039;:&amp;#039;);&lt;br /&gt;
  id = id.replace(/\%/g,&amp;#039;.&amp;#039;);&lt;br /&gt;
  return id;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function queryString(p) {&lt;br /&gt;
  var re = RegExp(&amp;#039;[&amp;amp;?#]&amp;#039; + p + &amp;#039;=([^&amp;amp;#]*)&amp;#039;);&lt;br /&gt;
  var matches = re.exec(document.location);&lt;br /&gt;
  if (matches) {&lt;br /&gt;
    try { &lt;br /&gt;
      return decodeURI(matches[1]);&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return null;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if(mw.config.get(&amp;#039;wgCanonicalSpecialPageName&amp;#039;) == &amp;#039;Contributions&amp;#039; &amp;amp;&amp;amp; mw.config.get(&amp;#039;wgEnableAPI&amp;#039;)) { &lt;br /&gt;
  var crContURI = &amp;#039;&amp;#039;; //query URI for continuing later&lt;br /&gt;
  var crLimit = 500; //limit for each query&lt;br /&gt;
  var crMax = 10000; //bypass with &amp;amp;crshowall=true URI parameter&lt;br /&gt;
  var crImgHid = &amp;#039;//upload.wikimedia.org/wikipedia/commons/a/ad/Arr_r.png&amp;#039;;&lt;br /&gt;
  var crImgSho = &amp;#039;//upload.wikimedia.org/wikipedia/commons/f/f0/Arr_d.png&amp;#039;;&lt;br /&gt;
  mw.util.addCSS(&amp;#039;.cr-list {padding-left:5px;}\n.cr-toggle-hidden {padding-left:16px;background: transparent no-repeat center left url(&amp;quot;&amp;#039; + crImgHid + &amp;#039;&amp;quot;)}&amp;#039; +&lt;br /&gt;
    &amp;#039;\n.cr-toggle-shown {padding-left:16px;background: transparent no-repeat center left url(&amp;quot;&amp;#039; + crImgSho + &amp;#039;&amp;quot;)}\n.mw-mightexist {font-style:italic;}&amp;#039; +&lt;br /&gt;
    &amp;#039;\n#results-from-CIDR {border:1px solid black;padding:.5em}\n#prefixcontribs-tog {float:right;border:1px solid black;text-decoration:none;color:black;padding:0 5px;}&amp;#039;);&lt;br /&gt;
  $(prefixContribsInit);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}( mediaWiki, jQuery ) );&lt;/div&gt;</summary>
		<author><name>zhwiki&gt;范</name></author>
	</entry>
</feed>