<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://mcbbs.wiki/index.php?action=history&amp;feed=atom&amp;title=%E7%94%A8%E6%88%B7%3A%E5%9D%91%E8%A7%A6%E5%8F%AF%2Fjs%2Fuserblockedinfo.js</id>
	<title>用户:坑触可/js/userblockedinfo.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://mcbbs.wiki/index.php?action=history&amp;feed=atom&amp;title=%E7%94%A8%E6%88%B7%3A%E5%9D%91%E8%A7%A6%E5%8F%AF%2Fjs%2Fuserblockedinfo.js"/>
	<link rel="alternate" type="text/html" href="https://mcbbs.wiki/index.php?title=%E7%94%A8%E6%88%B7:%E5%9D%91%E8%A7%A6%E5%8F%AF/js/userblockedinfo.js&amp;action=history"/>
	<updated>2026-05-11T17:39:53Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.40.3</generator>
	<entry>
		<id>https://mcbbs.wiki/index.php?title=%E7%94%A8%E6%88%B7:%E5%9D%91%E8%A7%A6%E5%8F%AF/js/userblockedinfo.js&amp;diff=50831&amp;oldid=prev</id>
		<title>坑触可：​撤销坑触可（讨论）的版本50830</title>
		<link rel="alternate" type="text/html" href="https://mcbbs.wiki/index.php?title=%E7%94%A8%E6%88%B7:%E5%9D%91%E8%A7%A6%E5%8F%AF/js/userblockedinfo.js&amp;diff=50831&amp;oldid=prev"/>
		<updated>2023-07-26T13:56:42Z</updated>

		<summary type="html">&lt;p&gt;撤销&lt;a href=&quot;/wiki/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/%E5%9D%91%E8%A7%A6%E5%8F%AF&quot; title=&quot;特殊:用户贡献/坑触可&quot;&gt;坑触可&lt;/a&gt;（&lt;a href=&quot;/wiki/%E7%94%A8%E6%88%B7%E8%AE%A8%E8%AE%BA:%E5%9D%91%E8%A7%A6%E5%8F%AF&quot; title=&quot;用户讨论:坑触可&quot;&gt;讨论&lt;/a&gt;）的版本50830&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-Hans-CN&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;2023年7月26日 (三) 21:56的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l174&quot;&gt;第174行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第174行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				return;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				return;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// 20081226220605  or  2008-01-26T06:34:19Z   -&amp;gt; date&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// 20081226220605  or  2008-01-26T06:34:19Z   -&amp;gt; date&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mcbbs_wiki:diff::1.12:old-50830:rev-50831 --&gt;
&lt;/table&gt;</summary>
		<author><name>坑触可</name></author>
	</entry>
	<entry>
		<id>https://mcbbs.wiki/index.php?title=%E7%94%A8%E6%88%B7:%E5%9D%91%E8%A7%A6%E5%8F%AF/js/userblockedinfo.js&amp;diff=50830&amp;oldid=prev</id>
		<title>坑触可：​// Edit via Wikiplus</title>
		<link rel="alternate" type="text/html" href="https://mcbbs.wiki/index.php?title=%E7%94%A8%E6%88%B7:%E5%9D%91%E8%A7%A6%E5%8F%AF/js/userblockedinfo.js&amp;diff=50830&amp;oldid=prev"/>
		<updated>2023-07-26T13:53:51Z</updated>

		<summary type="html">&lt;p&gt;// Edit via Wikiplus&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-Hans-CN&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;2023年7月26日 (三) 21:53的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// Wikipedia. MediaWiki:Gadget-markblocked.js&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;From &lt;/ins&gt;Wikipedia. MediaWiki:Gadget-markblocked.js&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(function($, mw) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(function($, mw) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l174&quot;&gt;第174行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第174行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				return;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				return;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// 20081226220605  or  2008-01-26T06:34:19Z   -&amp;gt; date&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// 20081226220605  or  2008-01-26T06:34:19Z   -&amp;gt; date&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mcbbs_wiki:diff::1.12:old-50790:rev-50830 --&gt;
&lt;/table&gt;</summary>
		<author><name>坑触可</name></author>
	</entry>
	<entry>
		<id>https://mcbbs.wiki/index.php?title=%E7%94%A8%E6%88%B7:%E5%9D%91%E8%A7%A6%E5%8F%AF/js/userblockedinfo.js&amp;diff=50790&amp;oldid=prev</id>
		<title>坑触可：​// Edit via Wikiplus</title>
		<link rel="alternate" type="text/html" href="https://mcbbs.wiki/index.php?title=%E7%94%A8%E6%88%B7:%E5%9D%91%E8%A7%A6%E5%8F%AF/js/userblockedinfo.js&amp;diff=50790&amp;oldid=prev"/>
		<updated>2023-07-24T14:12:49Z</updated>

		<summary type="html">&lt;p&gt;// Edit via Wikiplus&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// Wikipedia. MediaWiki:Gadget-markblocked.js&lt;br /&gt;
&lt;br /&gt;
(function($, mw) {&lt;br /&gt;
	function markBlocked(container) {&lt;br /&gt;
		var contentLinks;&lt;br /&gt;
&lt;br /&gt;
		// Collect all the links in the page&amp;#039;s content&lt;br /&gt;
		if (container) {&lt;br /&gt;
			contentLinks = $(container).find(&amp;#039;a&amp;#039;);&lt;br /&gt;
		} else if (mw.util.$content) {&lt;br /&gt;
			contentLinks = mw.util.$content.find(&amp;#039;a&amp;#039;).add(&amp;#039;#ca-nstab-user a&amp;#039;);&lt;br /&gt;
		} else {&lt;br /&gt;
			contentLinks = $();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		setCSS(&amp;#039;\&lt;br /&gt;
			.user-blocked-temp {&amp;#039; + (window.mbTempStyle || &amp;#039;opacity:.7;text-decoration:line-through&amp;#039;) + &amp;#039;}\&lt;br /&gt;
			.user-blocked-indef {&amp;#039; + (window.mbIndefStyle || &amp;#039;opacity:.4;font-style:italic;text-decoration:line-through&amp;#039;) + &amp;#039;}\&lt;br /&gt;
			.user-blocked-partial {&amp;#039; + (window.mbPartialStyle || &amp;#039;text-decoration:underline;text-decoration-style:dotted&amp;#039;) + &amp;#039;}\&lt;br /&gt;
			.user-blocked-tipbox {&amp;#039; + (window.mbTipBoxStyle || &amp;#039;font-size:smaller;background:#fffff0;border:1px solid #fea;padding:0 .3em;color:#aaa&amp;#039;) + &amp;#039;}\&lt;br /&gt;
			&amp;#039;, &amp;#039;markBlockedStyle-1&amp;#039;, &amp;#039;add&amp;#039;);&lt;br /&gt;
		if (typeof window.mbTooltip === &amp;#039;undefined&amp;#039;) {&lt;br /&gt;
			var mbTooltip = &amp;#039;；由$2封禁$1：$3（$4前）&amp;#039;;&lt;br /&gt;
		} else {&lt;br /&gt;
			var mbTooltip = window.mbTooltip;&lt;br /&gt;
		}&lt;br /&gt;
		if (typeof window.mbTooltipPartial === &amp;#039;undefined&amp;#039;) {&lt;br /&gt;
			var mbTooltipPartial = &amp;#039;；由$2部分封禁$1：$3（$4前）&amp;#039;;&lt;br /&gt;
		} else {&lt;br /&gt;
			var mbTooltipPartial = window.mbTooltipPartial;&lt;br /&gt;
		}&lt;br /&gt;
		if (typeof window.mbInfinity === &amp;#039;undefined&amp;#039;) {&lt;br /&gt;
			var mbInfinity = &amp;#039;无限期&amp;#039;&lt;br /&gt;
		} else {&lt;br /&gt;
			var mbInfinity = window.mbInfinity;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// Get all aliases for user: &amp;amp; user_talk:&lt;br /&gt;
		var userNS = [];&lt;br /&gt;
		for (var ns in mw.config.get(&amp;#039;wgNamespaceIds&amp;#039;)) {&lt;br /&gt;
			if (mw.config.get(&amp;#039;wgNamespaceIds&amp;#039;)[ns] == 2 || mw.config.get(&amp;#039;wgNamespaceIds&amp;#039;)[ns] == 3) {&lt;br /&gt;
				userNS.push(ns.replace(/_/g, &amp;#039; &amp;#039;) + &amp;#039;:&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// Let wikis that are importing this gadget specify the local alias of Special:Contributions&lt;br /&gt;
		var markblocked_contributions = window.markblocked_contributions || &amp;#039;(Special|特殊):(?:Contribs|Contributions|用户贡献)&amp;#039;;&lt;br /&gt;
		// RegExp for all titles that are  User:| User_talk: | Special:Contributions/ (for userscripts)&lt;br /&gt;
		var userTitleRX = new RegExp(&amp;#039;^(&amp;#039; + userNS.join(&amp;#039;|&amp;#039;) + &amp;#039;|&amp;#039; + markblocked_contributions + &amp;#039;\\/)+([^\\/#]+)$&amp;#039;, &amp;#039;i&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		// RegExp for links&lt;br /&gt;
		// articleRX also matches external links in order to support the noping template&lt;br /&gt;
		var articleRX = new RegExp(mw.config.get(&amp;#039;wgArticlePath&amp;#039;).replace(&amp;#039;$1&amp;#039;, &amp;#039;&amp;#039;) + &amp;#039;([^#]+)&amp;#039;);&lt;br /&gt;
		var scriptRX = new RegExp(&amp;#039;^&amp;#039; + mw.config.get(&amp;#039;wgScript&amp;#039;) + &amp;#039;\\?title=([^#&amp;amp;]+)&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		var userLinks = {};&lt;br /&gt;
		var user,&lt;br /&gt;
			url,&lt;br /&gt;
			ma,&lt;br /&gt;
			pgTitle;&lt;br /&gt;
&lt;br /&gt;
		// Find all &amp;quot;user&amp;quot; links and save them in userLinks : { &amp;#039;users&amp;#039;: [&amp;lt;link1&amp;gt;, &amp;lt;link2&amp;gt;, ...], &amp;#039;user2&amp;#039;: [&amp;lt;link3&amp;gt;, &amp;lt;link3&amp;gt;, ...], ... }&lt;br /&gt;
		contentLinks.each(function(i, lnk) {&lt;br /&gt;
			if ($(lnk).hasClass(&amp;#039;mw-changeslist-date&amp;#039;) || $(lnk).parent(&amp;#039;span&amp;#039;).hasClass(&amp;#039;mw-history-undo&amp;#039;) || $(lnk).parent(&amp;#039;span&amp;#039;).hasClass(&amp;#039;mw-rollback-link&amp;#039;)) return;&lt;br /&gt;
			url = $(lnk).attr(&amp;#039;href&amp;#039;);&lt;br /&gt;
			if (!url)  return;&lt;br /&gt;
			if (mw.util.isIPv6Address(url.replace(/^(?:https?:\/\/)/i, &amp;#039;&amp;#039;))) return;&lt;br /&gt;
			if (new URL(url, window.location.origin).origin !== window.location.origin) return;&lt;br /&gt;
			if (ma = articleRX.exec(url)) {&lt;br /&gt;
				pgTitle = ma[1];&lt;br /&gt;
			} else if (ma = scriptRX.exec(url)) {&lt;br /&gt;
				pgTitle = ma[1];&lt;br /&gt;
			} else {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			pgTitle = decodeURIComponent(pgTitle).replace(/_/g, &amp;#039; &amp;#039;);&lt;br /&gt;
			user = userTitleRX.exec(pgTitle);&lt;br /&gt;
			if (!user) return;&lt;br /&gt;
			user = user[2];&lt;br /&gt;
			if (mw.util.isIPv6Address(user)) user = user.toUpperCase();&lt;br /&gt;
			$(lnk).addClass(&amp;#039;userlink&amp;#039;);&lt;br /&gt;
			if (!userLinks[user]) userLinks[user] = [];&lt;br /&gt;
			userLinks[user].push(lnk);&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// Convert users into array&lt;br /&gt;
		var users = [];&lt;br /&gt;
		for (var u in userLinks) {&lt;br /&gt;
			users.push(u);&lt;br /&gt;
		}&lt;br /&gt;
		if (users.length === 0) return;&lt;br /&gt;
&lt;br /&gt;
		// API request&lt;br /&gt;
		var serverTime,&lt;br /&gt;
			apiRequests = 0;&lt;br /&gt;
		var waitingCSS = setCSS(&amp;#039;a.userlink {opacity:&amp;#039; + (window.mbLoadingOpacity || 0.85) + &amp;#039;}&amp;#039;, &amp;#039;markBlockedStyle-2&amp;#039;, &amp;#039;add&amp;#039;);&lt;br /&gt;
		while (users.length &amp;gt; 0) {&lt;br /&gt;
			apiRequests++;&lt;br /&gt;
			$.post(&lt;br /&gt;
				mw.util.wikiScript(&amp;#039;api&amp;#039;) + &amp;#039;?format=json&amp;amp;action=query&amp;#039;, {&lt;br /&gt;
				list: &amp;#039;blocks&amp;#039;,&lt;br /&gt;
				bklimit: 100,&lt;br /&gt;
				bkusers: users.splice(0, 50).join(&amp;#039;|&amp;#039;),&lt;br /&gt;
				bkprop: &amp;#039;user|by|timestamp|expiry|reason|restrictions&amp;#039;&lt;br /&gt;
				// no need for &amp;#039;id|flags&amp;#039;&lt;br /&gt;
			}, markLinks);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return; // the end&lt;br /&gt;
&lt;br /&gt;
		// Callback: receive data and mark links&lt;br /&gt;
		function markLinks(resp, status, xhr) {&lt;br /&gt;
&lt;br /&gt;
			serverTime = new Date(xhr.getResponseHeader(&amp;#039;Date&amp;#039;));&lt;br /&gt;
			var list,&lt;br /&gt;
				blk,&lt;br /&gt;
				tip,&lt;br /&gt;
				links,&lt;br /&gt;
				lnk,&lt;br /&gt;
				blTime;&lt;br /&gt;
			if (!resp || !(list = resp.query) || !(list = list.blocks)) return;&lt;br /&gt;
&lt;br /&gt;
			for (var i = 0; i &amp;lt; list.length; i++) {&lt;br /&gt;
				blk = list[i];&lt;br /&gt;
				var partial = blk.restrictions &amp;amp;&amp;amp; !Array.isArray(blk.restrictions); //Partial block&lt;br /&gt;
				if (/^in/.test(blk.expiry)) {&lt;br /&gt;
					clss = partial ? &amp;#039;user-blocked-partial&amp;#039; : &amp;#039;user-blocked-indef&amp;#039;;&lt;br /&gt;
					blTime = blk.expiry;&lt;br /&gt;
				} else {&lt;br /&gt;
					clss = partial ? &amp;#039;user-blocked-partial&amp;#039; : &amp;#039;user-blocked-temp&amp;#039;;&lt;br /&gt;
					blTime = inHours(parseTS(blk.expiry) - parseTS(blk.timestamp));&lt;br /&gt;
				}&lt;br /&gt;
				tip = mbTooltip;&lt;br /&gt;
				if (partial) tip = mbTooltipPartial;&lt;br /&gt;
				tip = tip.replace(&amp;#039;$1&amp;#039;, blTime).replace(&amp;#039;infinity&amp;#039;, mbInfinity)&lt;br /&gt;
					.replace(&amp;#039;$2&amp;#039;, blk.by)&lt;br /&gt;
					.replace(&amp;#039;$3&amp;#039;, blk.reason)&lt;br /&gt;
					.replace(&amp;#039;$4&amp;#039;, inHours(serverTime - parseTS(blk.timestamp)));&lt;br /&gt;
				links = userLinks[blk.user];&lt;br /&gt;
				for (var k = 0; links &amp;amp;&amp;amp; k &amp;lt; links.length; k++) {&lt;br /&gt;
					lnk = $(links[k]);&lt;br /&gt;
					lnk = lnk.addClass(clss);&lt;br /&gt;
					if (window.mbTipBox) {&lt;br /&gt;
						$(&amp;#039;&amp;lt;span class=user-blocked-tipbox&amp;gt;#&amp;lt;/span&amp;gt;&amp;#039;).attr(&amp;#039;title&amp;#039;, tip).insertBefore(lnk);&lt;br /&gt;
					} else {&lt;br /&gt;
						lnk.attr(&amp;#039;title&amp;#039;, lnk.attr(&amp;#039;title&amp;#039;) + tip);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			if (--apiRequests === 0) { // last response&lt;br /&gt;
				setCSS(&amp;#039;&amp;#039;, &amp;#039;markBlockedStyle-2&amp;#039;, &amp;#039;remove&amp;#039;);&lt;br /&gt;
				$(&amp;#039;#ca-showblocks&amp;#039;).parent().remove(); // remove added portlet link&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// --------AUX functions&lt;br /&gt;
&lt;br /&gt;
		// 避免标签爆炸（mw.hook导致重复添加样式表）&lt;br /&gt;
		function setCSS(css, id, method) {&lt;br /&gt;
			var style = document.createElement(&amp;#039;style&amp;#039;);&lt;br /&gt;
			switch (method) {&lt;br /&gt;
			case &amp;#039;add&amp;#039;:&lt;br /&gt;
				if (document.getElementById(id))&lt;br /&gt;
					return;&lt;br /&gt;
				style.id = id;&lt;br /&gt;
				style.appendChild(document.createTextNode(css));&lt;br /&gt;
				document.head.appendChild(style);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;remove&amp;#039;:&lt;br /&gt;
				document.getElementById(id) &amp;amp;&amp;amp; $(&amp;#039;#&amp;#039; + id).remove(); // 原生document.getElementById(id).remove()方法不兼容IE&lt;br /&gt;
				break;&lt;br /&gt;
			default:&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// 20081226220605  or  2008-01-26T06:34:19Z   -&amp;gt; date&lt;br /&gt;
		function parseTS(ts) {&lt;br /&gt;
			var m = ts.replace(/\D/g, &amp;#039;&amp;#039;).match(/(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/);&lt;br /&gt;
			return new Date(Date.UTC(m[1], m[2] - 1, m[3], m[4], m[5], m[6]));&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function inHours(ms) { // milliseconds -&amp;gt; &amp;quot;2:30&amp;quot; or 5,06d or 21d&lt;br /&gt;
			var mm = Math.floor(ms / 60000);&lt;br /&gt;
			if (!mm) return Math.floor(ms / 1000) + &amp;#039;秒&amp;#039;;&lt;br /&gt;
			var hh = Math.floor(mm / 60);&lt;br /&gt;
			mm = mm % 60;&lt;br /&gt;
			var dd = Math.floor(hh / 24);&lt;br /&gt;
			hh = hh % 24;&lt;br /&gt;
			if (dd) {&lt;br /&gt;
				if (dd &amp;lt; 10 &amp;amp;&amp;amp; hh) return dd + &amp;#039;日&amp;#039; + hh + &amp;#039;小时&amp;#039;;&lt;br /&gt;
				return dd + &amp;#039;日&amp;#039;;&lt;br /&gt;
			}&lt;br /&gt;
			return hh + &amp;#039;小时&amp;#039; + zz(mm) + &amp;#039;分&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function zz(v) { // 6 -&amp;gt; &amp;#039;06&amp;#039;&lt;br /&gt;
			if (v &amp;lt;= 9) v = &amp;#039;0&amp;#039; + v;&lt;br /&gt;
			return v;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	} // -- end of main function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// Start on some pages&lt;br /&gt;
	switch (mw.config.get(&amp;#039;wgAction&amp;#039;)) {&lt;br /&gt;
	case &amp;#039;edit&amp;#039;:&lt;br /&gt;
	case &amp;#039;submit&amp;#039;:&lt;br /&gt;
		break;&lt;br /&gt;
	case &amp;#039;view&amp;#039;:&lt;br /&gt;
		if (mw.config.get(&amp;#039;wgNamespaceNumber&amp;#039;) === 0) {&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
		// Otherwise continue with default&lt;br /&gt;
	default: // &amp;#039;history&amp;#039;, &amp;#039;purge&amp;#039;&lt;br /&gt;
		$.when($.ready, mw.loader.using(&amp;#039;mediawiki.util&amp;#039;)).then(function() {&lt;br /&gt;
			if (window.mbNoAutoStart) {&lt;br /&gt;
				var portletLink = mw.util.addPortletLink(&amp;#039;p-cactions&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;XX&amp;#039;, &amp;#039;ca-showblocks&amp;#039;);&lt;br /&gt;
				$(portletLink).click(function(e) {&lt;br /&gt;
					e.preventDefault();&lt;br /&gt;
					markBlocked();&lt;br /&gt;
				});&lt;br /&gt;
			} else {&lt;br /&gt;
				mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function(e) {&lt;br /&gt;
					if (e.attr(&amp;#039;id&amp;#039;) === &amp;#039;mw-content-text&amp;#039;) markBlocked();&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
})(jQuery, mw);&lt;/div&gt;</summary>
		<author><name>坑触可</name></author>
	</entry>
</feed>