<?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-EditCommon.js</id>
	<title>MediaWiki:Gadget-EditCommon.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-EditCommon.js"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-EditCommon.js&amp;action=history"/>
	<updated>2026-07-20T21:58:48Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-EditCommon.js&amp;diff=401342&amp;oldid=prev</id>
		<title>2025年8月10日 (日) 10:42 imported&gt;Diskdance</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-EditCommon.js&amp;diff=401342&amp;oldid=prev"/>
		<updated>2025-08-10T10:42:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// &amp;lt;nowiki&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * 界面管理员注意：&lt;br /&gt;
 *&lt;br /&gt;
 * 本小工具分为两部分。&lt;br /&gt;
 * 其中，runDesktopScripts函数会在使用桌面版传统编辑器、可视化编辑器、2017维基文本编辑器时运行；&lt;br /&gt;
 * runMobileScripts函数会在使用移动版编辑器时运行。&lt;br /&gt;
 *&lt;br /&gt;
 * 然而，可视化编辑器与2017维基文本编辑器有两个问题：&lt;br /&gt;
 * 1. 此脚本运行时，编辑器可能尚未加载完成。&lt;br /&gt;
 * 2. 互相切换时，或者放弃编辑之后再次点击编辑时，浏览器页面不会刷新，本页面脚本不会再次加载。&lt;br /&gt;
 * 因此，如果代码与VE/2017维基文本编辑器相关，需要在进入编辑器时运行，请集中放在&lt;br /&gt;
 *   mw.hook(&amp;#039;ve.activationComplete&amp;#039;).add(function () {&lt;br /&gt;
 *     ......&lt;br /&gt;
 *   });&lt;br /&gt;
 * 中。&lt;br /&gt;
 * &lt;br /&gt;
 * 如果您要添加的代码包含[[卫语句]]，则必须用IIFE包裹之，否则会导致后续代码被跳过。&lt;br /&gt;
 *&lt;br /&gt;
 * 另外，若要加入依赖，应于小工具定义的dependencies属性中添加，而非于代码中通过mw.loader加载。&lt;br /&gt;
 *&lt;br /&gt;
 * 如有疑问，请到zh.wikipedia.beta.wmcloud.org进行测试。&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
const { conv } = require( &amp;#039;ext.gadget.HanAssist&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
function runDesktopScripts() {&lt;br /&gt;
	/*&lt;br /&gt;
	== 編輯工具欄 ==&lt;br /&gt;
	*/&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * tip for custom edittools&lt;br /&gt;
	 *&lt;br /&gt;
	 * Maintainers: fdcn@zh.wikipedia&lt;br /&gt;
	 */&lt;br /&gt;
	if (&lt;br /&gt;
		mw.config.get( &amp;#039;wgAction&amp;#039; ) === &amp;#039;edit&amp;#039;&lt;br /&gt;
		&amp;amp;&amp;amp; $( &amp;#039;span.oo-ui-fieldLayout-header&amp;#039; )&lt;br /&gt;
	) {&lt;br /&gt;
		$( &amp;#039;span.oo-ui-fieldLayout-header&amp;#039; ).css( &amp;#039;max-width&amp;#039;, &amp;#039;none&amp;#039; ); // 一行显示编辑摘要&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var veCount = 0;&lt;br /&gt;
&lt;br /&gt;
	// 在提交新段落時，讓主題欄在特定情況下失效&lt;br /&gt;
	if ( $( &amp;#039;#no-new-title&amp;#039; ).length ) {&lt;br /&gt;
		if ( $( &amp;#039;#editform input[name=wpSection]&amp;#039; ).val() === &amp;#039;new&amp;#039; ) {&lt;br /&gt;
			// 傳統文本編輯器&lt;br /&gt;
			$( &amp;#039;#wpSummary&amp;#039; ).attr( &amp;#039;disabled&amp;#039;, true );&lt;br /&gt;
			$( &amp;#039;#wpSummary&amp;#039; ).val( &amp;#039;&amp;#039; );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// 視覺化編輯器 / 新 wikitext 模式&lt;br /&gt;
	var noSectionTitlePages = [&lt;br /&gt;
		&amp;#039;Wikipedia:防滥用过滤器/错误报告&amp;#039;,&lt;br /&gt;
	];&lt;br /&gt;
	if (&lt;br /&gt;
		$.inArray( mw.config.get( &amp;#039;wgPageName&amp;#039; ), noSectionTitlePages )&lt;br /&gt;
			!== -1&lt;br /&gt;
		&amp;amp;&amp;amp; mw.util.getParamValue( &amp;#039;section&amp;#039; ) === &amp;#039;new&amp;#039;&lt;br /&gt;
	) {&lt;br /&gt;
		mw.util.addCSS(&lt;br /&gt;
			&amp;#039;h2.ve-ui-init-desktopArticleTarget-sectionTitle { display: none; }&amp;#039;,&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// 快速选择常见编辑摘要&lt;br /&gt;
	// 摘要内容请到[[MediaWiki:Summary]]及相关中文变体页面维护。&lt;br /&gt;
	var insertSummary = function( $this, $summary ) {&lt;br /&gt;
		var summary = $summary.val();&lt;br /&gt;
		var $item = $this.parent( &amp;#039;.mw-summary-preset-item&amp;#039; );&lt;br /&gt;
		summary = summary.replace( /\s+$/g, &amp;#039;&amp;#039; );&lt;br /&gt;
		if ( summary != &amp;#039;&amp;#039; ) {&lt;br /&gt;
			summary += &amp;#039; &amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		summary += $item.attr( &amp;#039;title&amp;#039; ) || $this.text();&lt;br /&gt;
		$this.replaceWith( $this.contents() );&lt;br /&gt;
		$summary.val( summary ).change();&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	// 传统编辑器&lt;br /&gt;
	$( &amp;#039;#wpSummaryLabel .mw-summary-preset&amp;#039; ).on(&lt;br /&gt;
		&amp;#039;click&amp;#039;,&lt;br /&gt;
		&amp;#039;.mw-summary-preset-item a&amp;#039;,&lt;br /&gt;
		function( e ) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
			insertSummary( $( this ), $( &amp;#039;#wpSummary&amp;#039; ) );&lt;br /&gt;
		},&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
	// VE / 新维基文本&lt;br /&gt;
	var isInitSummary = false;&lt;br /&gt;
	mw.hook( &amp;#039;ve.saveDialog.stateChanged&amp;#039; ).add( function() {&lt;br /&gt;
		// 编辑摘要链接在第一次点击“发布更改”按钮之后才会加载，因此需要额外判断&lt;br /&gt;
		if ( !isInitSummary ) {&lt;br /&gt;
			$(&lt;br /&gt;
				&amp;#039;div.ve-ui-mwSaveDialog-summaryLabel span.mw-summary-preset-item &amp;gt; a&amp;#039;,&lt;br /&gt;
			)&lt;br /&gt;
				.removeAttr( &amp;#039;target&amp;#039; )&lt;br /&gt;
				.click( function( e ) {&lt;br /&gt;
					e.preventDefault();&lt;br /&gt;
					insertSummary(&lt;br /&gt;
						$( this ),&lt;br /&gt;
						$( &amp;#039;div.ve-ui-mwSaveDialog-summary &amp;gt; textarea&amp;#039; ),&lt;br /&gt;
					);&lt;br /&gt;
				} );&lt;br /&gt;
			isInitSummary = true;&lt;br /&gt;
		}&lt;br /&gt;
	} );&lt;br /&gt;
&lt;br /&gt;
	// 每次进入可视化/2017维基文本编辑器都要运行的代码请集中放在此处，&lt;br /&gt;
	// 由于无法保证加载顺序，请避免另外实现mw.hook(&amp;#039;ve.activationComplete&amp;#039;).add(...)。&lt;br /&gt;
	mw.hook( &amp;#039;ve.activationComplete&amp;#039; ).add( function() {&lt;br /&gt;
		// 由于无法保证用户是第一次进入编辑器，需记录进入次数。&lt;br /&gt;
		veCount++;&lt;br /&gt;
&lt;br /&gt;
		// 编辑摘要链接初始化&lt;br /&gt;
		isInitSummary = false;&lt;br /&gt;
	} );&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * -------------------------------------------------------------------------------&lt;br /&gt;
	 *  Force Preview JavaScript code - Start&lt;br /&gt;
	 *&lt;br /&gt;
	 *  For MediaWiki &amp;gt;= 1.23&lt;br /&gt;
	 *&lt;br /&gt;
	 *  To allow any group to bypass being forced to preview,&lt;br /&gt;
	 *  enter the group name in the permittedGroups array.&lt;br /&gt;
	 *  E.g.&lt;br /&gt;
	 *    var permittedGroups = [];                        // force everyone&lt;br /&gt;
	 *    var permittedGroups = [ &amp;#039;user&amp;#039; ];                // permit logged-in users&lt;br /&gt;
	 *    var permittedGroups = [ &amp;#039;sysop&amp;#039;, &amp;#039;bureaucrat&amp;#039; ]; // permit sysop, bureaucrat&lt;br /&gt;
	 * -------------------------------------------------------------------------------&lt;br /&gt;
	 */&lt;br /&gt;
&lt;br /&gt;
	( () =&amp;gt; {&lt;br /&gt;
		var permittedGroups = [ &amp;#039;confirmed&amp;#039;, &amp;#039;autoconfirmed&amp;#039; ];&lt;br /&gt;
		if (&lt;br /&gt;
			mw.config.get( &amp;#039;wgAction&amp;#039; ) !== &amp;#039;edit&amp;#039;&lt;br /&gt;
			|| permittedGroups.some( ( val ) =&amp;gt;&lt;br /&gt;
				mw.config.get( &amp;#039;wgUserGroups&amp;#039; ).indexOf( val ) &amp;gt; -1&lt;br /&gt;
			)&lt;br /&gt;
		) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		var originalLabel;&lt;br /&gt;
		mw.hook( &amp;#039;wikipage.editform&amp;#039; ).add( function( $editForm ) {&lt;br /&gt;
			var saveButton;&lt;br /&gt;
			try {&lt;br /&gt;
				saveButton = OO.ui.infuse(&lt;br /&gt;
					$editForm.find( &amp;#039;#wpSaveWidget&amp;#039; ),&lt;br /&gt;
				);&lt;br /&gt;
			} catch ( e ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			if ( !$( &amp;#039;#wikiPreview, #wikiDiff&amp;#039; ).is( &amp;#039;:visible&amp;#039; ) ) {&lt;br /&gt;
				if ( saveButton.isDisabled() ) {&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				if ( originalLabel === undefined ) {&lt;br /&gt;
					originalLabel = saveButton.getLabel();&lt;br /&gt;
				}&lt;br /&gt;
				var newLabel = conv( {&lt;br /&gt;
					hans: &amp;#039;（请先预览）&amp;#039;,&lt;br /&gt;
					hant: &amp;#039;（請先預覽）&amp;#039;,&lt;br /&gt;
					other: &amp;#039; (Preview first)&amp;#039;,&lt;br /&gt;
				} );&lt;br /&gt;
				saveButton.setDisabled( true ).setLabel(&lt;br /&gt;
					originalLabel + newLabel,&lt;br /&gt;
				);&lt;br /&gt;
			} else if ( originalLabel !== undefined ) {&lt;br /&gt;
				saveButton.setLabel( originalLabel ).setDisabled( false );&lt;br /&gt;
			}&lt;br /&gt;
		} );&lt;br /&gt;
	} )();&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * -----------------------------------------------------&lt;br /&gt;
	 *   Force Preview JavaScript code - End&lt;br /&gt;
	 * -----------------------------------------------------&lt;br /&gt;
	 */&lt;br /&gt;
&lt;br /&gt;
	/*&lt;br /&gt;
	== 取消修訂編輯摘要修正 ==&lt;br /&gt;
	*/&lt;br /&gt;
	/**&lt;br /&gt;
	fix edit summary prompt for undo&lt;br /&gt;
	this code fixes the fact that the undo function combined with the &amp;quot;no edit summary prompter&amp;quot; causes problems if leaving the edit summary unchanged&lt;br /&gt;
	this was added by [[:en:User:Deskana]], code by [[:en:User:Tra]]&lt;br /&gt;
	*/&lt;br /&gt;
	var autoSummary = document.getElementsByName( &amp;#039;wpAutoSummary&amp;#039; )[0];&lt;br /&gt;
	if (&lt;br /&gt;
		document.location.search.indexOf( &amp;#039;undo=&amp;#039; ) != -1 &amp;amp;&amp;amp; autoSummary&lt;br /&gt;
	) { autoSummary.value = &amp;#039;&amp;#039;; }&lt;br /&gt;
&lt;br /&gt;
	/*&lt;br /&gt;
	== WP:DYKC編輯時取消編輯摘要空段落標示 ==&lt;br /&gt;
	*/&lt;br /&gt;
	( () =&amp;gt; {&lt;br /&gt;
		var $wpSummary = $( &amp;#039;#editform #wpSummary&amp;#039; ),&lt;br /&gt;
			$wpTextbox1 = $( &amp;#039;#editform #wpTextbox1&amp;#039; );&lt;br /&gt;
		if ( $wpSummary.length == 0 || $wpTextbox1.length == 0 ) { return; }&lt;br /&gt;
		var wpSummary = $wpSummary.get( 0 ), wpTextbox1 = $wpTextbox1.get( 0 );&lt;br /&gt;
		var keyReg = /(?:\n|.)*\|\s*article\s*= *([\S ]*)(?:\n|.)*/m;&lt;br /&gt;
		if ( wpSummary.value.indexOf( &amp;#039;  &amp;#039; ) &amp;gt;= 0 ) { wpSummary.value = &amp;#039;&amp;#039;; }&lt;br /&gt;
		if ( mw.config.get( &amp;#039;wgPageName&amp;#039; ) != &amp;#039;Wikipedia:新条目推荐/候选&amp;#039; ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		if (&lt;br /&gt;
			wpSummary.value == &amp;#039;/&amp;#039; + &amp;#039;*  *&amp;#039; + &amp;#039;/ &amp;#039;&lt;br /&gt;
			&amp;amp;&amp;amp; wpTextbox1.value.match( keyReg )&lt;br /&gt;
		) {} else { return; }&lt;br /&gt;
		var temp = wpTextbox1.value.replace( keyReg, &amp;#039;$1&amp;#039; );&lt;br /&gt;
		if ( !temp ) { return; }&lt;br /&gt;
		wpSummary.value = wpSummary.defaultValue = &amp;#039;\/&amp;#039; + &amp;#039;* &amp;#039; + temp + &amp;#039; *&amp;#039;&lt;br /&gt;
			+ &amp;#039;\/ &amp;#039;;&lt;br /&gt;
	} )();&lt;br /&gt;
&lt;br /&gt;
	/* Check for any client-side simplified/traditional Chinese conversion */&lt;br /&gt;
	var checkAntiConv = function() {&lt;br /&gt;
		var $ac = $( &amp;#039;#wpAntiConv&amp;#039; );&lt;br /&gt;
		if ( $ac.length &amp;amp;&amp;amp; $ac.val() != &amp;#039;\u6c49\u6f22&amp;#039; ) {&lt;br /&gt;
			var text = $( &amp;#039;#wpTextbox1&amp;#039; ).val();&lt;br /&gt;
			var section = $( &amp;#039;input[name=wpSection]&amp;#039; ).val();&lt;br /&gt;
			var basetimestamp = $( &amp;#039;input[name=wpEdittime]&amp;#039; ).val();&lt;br /&gt;
			var starttimestamp = $( &amp;#039;input[name=wpStarttime]&amp;#039; ).val();&lt;br /&gt;
			$( &amp;#039;#editform :input&amp;#039; ).attr( { disabled: true, readOnly: true } );&lt;br /&gt;
			mw.loader.using( [ &amp;#039;mediawiki.notification&amp;#039; ], function() {&lt;br /&gt;
				mw.notify(&lt;br /&gt;
					conv( {&lt;br /&gt;
						hans:&lt;br /&gt;
							&amp;#039;系统检测到您使用了客户端繁简转换软件，且此软件对文本框中的内容进行了转换。请关闭此软件后重新打开编辑界面，再进行编辑。&amp;#039;,&lt;br /&gt;
						hant:&lt;br /&gt;
							&amp;#039;系統檢測到您使用了用戶端繁簡轉換軟體，且此軟體對文字方塊中的內容進行了轉換。請關閉此軟體後重新打開編輯介面，再進行編輯。&amp;#039;,&lt;br /&gt;
					} ),&lt;br /&gt;
					{ autoHide: false },&lt;br /&gt;
				);&lt;br /&gt;
			} );&lt;br /&gt;
		} else {&lt;br /&gt;
			setTimeout( checkAntiConv, 1000 );&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
	setTimeout( checkAntiConv, 1000 );&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Preload function for existing page&lt;br /&gt;
	 */&lt;br /&gt;
	var revid = mw.util.getParamValue( &amp;#039;preloadrevid&amp;#039; );&lt;br /&gt;
	if ( revid ) {&lt;br /&gt;
		var api = new mw.Api();&lt;br /&gt;
		api.get( {&lt;br /&gt;
			&amp;#039;action&amp;#039;: &amp;#039;query&amp;#039;,&lt;br /&gt;
			&amp;#039;format&amp;#039;: &amp;#039;json&amp;#039;,&lt;br /&gt;
			&amp;#039;prop&amp;#039;: &amp;#039;revisions&amp;#039;,&lt;br /&gt;
			&amp;#039;revids&amp;#039;: revid,&lt;br /&gt;
			&amp;#039;formatversion&amp;#039;: &amp;#039;2&amp;#039;,&lt;br /&gt;
			&amp;#039;rvprop&amp;#039;: &amp;#039;content&amp;#039;,&lt;br /&gt;
			&amp;#039;rvslots&amp;#039;: &amp;#039;*&amp;#039;,&lt;br /&gt;
		} ).then( function( data ) {&lt;br /&gt;
			var title = data.query.pages[0].title;&lt;br /&gt;
			var content = data.query.pages[0].revisions[0].slots.main.content;&lt;br /&gt;
			mw.hook( &amp;#039;editorapi.ready&amp;#039; ).add( function( editor ) {&lt;br /&gt;
				console.log( editor.mode );&lt;br /&gt;
				editor.text = content;&lt;br /&gt;
				editor.showDiff();&lt;br /&gt;
				mw.notify(&lt;br /&gt;
					conv( { hans: &amp;#039;已从 &amp;#039;, hant: &amp;#039;已從 &amp;#039; } ) + title&lt;br /&gt;
						+ conv( { hans: &amp;#039; 加载版本 &amp;#039;, hant: &amp;#039; 載入版本 &amp;#039; } )&lt;br /&gt;
						+ revid + conv( { hans: &amp;#039; 的内容&amp;#039;, hant: &amp;#039; 的內容&amp;#039; } ),&lt;br /&gt;
					{ type: &amp;#039;success&amp;#039; },&lt;br /&gt;
				);&lt;br /&gt;
			} );&lt;br /&gt;
			mw.loader.load( &amp;#039;ext.gadget.EditorAPIs&amp;#039; );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function runMobileScripts() {&lt;br /&gt;
	// 在提交新段落時，讓主題欄在特定情況下失效&lt;br /&gt;
&lt;br /&gt;
	if ( $( &amp;#039;#no-new-title&amp;#039; ).length ) {&lt;br /&gt;
		if ( $( &amp;#039;#editform input[name=wpSection]&amp;#039; ).val() === &amp;#039;new&amp;#039; ) {&lt;br /&gt;
			mw.util.addCSS( &amp;#039;#wpSummaryLabel { display: none; }&amp;#039; );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$( () =&amp;gt; {&lt;br /&gt;
	if ( mw.config.get( &amp;#039;wgMFMode&amp;#039; ) ) {&lt;br /&gt;
		runMobileScripts();&lt;br /&gt;
	} else {&lt;br /&gt;
		runDesktopScripts();&lt;br /&gt;
	}&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
// &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Diskdance</name></author>
	</entry>
</feed>