Jump to content

片段/强制预览

From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page is a translated version of the page Snippets/Force preview and the translation is 100% complete.
How to use Snippets
List of Snippets
Force preview
Language(s): JavaScript
Compatible with: MediaWiki 1.23++ (Vector)

強制預覽(Force preview)是一個能使特定的人或用戶組別於保存頁面之前必須至少預覽頁面至少一次的JavaScript。

欲使用此程式碼,請將其導入至個別維基的MediaWiki:Common.js頁面。

注意這個方法並非完全萬無一失。 如果該用戶於瀏覽器關閉JavaScript功能,此強制預覽功能是不會運作的。 如果您想要確保這個方針是強制執行的,那麼您應該查看 扩展:强制预览

// 强制预览和填写编辑摘要 - 开始
if (mw.config.get("wgAction") === "edit")
	$.when(mw.loader.using("user.options"), $.ready).then(function () {
		var $wpSave = $("#wpSave"),
			$wpPreview = $("#wpPreview"),
			saveVal = $wpSave.val(),
			classNames = "oo-ui-widget-enabled oo-ui-flaggedElement-progressive oo-ui-flaggedElement-primary";
		if (!mw.user.options.get("forceeditsummary") || mw.user.options.get("previewonfirst"))
			mw.loader.using("mediawiki.api", function () {
				new mw.Api().saveOptions({forceeditsummary: 1, previewonfirst: 0});
			});
		if (!$("#wikiPreview,#wikiDiff").is(":visible") && $wpSave.length && $wpPreview.length) {
			$wpSave.prop("disabled", true)
				.val("Save page (use preview first)")
				.parent().removeClass(classNames).addClass("oo-ui-widget-disabled");
			$wpPreview.one("click", function (e) { // 再次启用
				$wpSave.prop("disabled", false)
					.val(saveVal)
					.parent().removeClass("oo-ui-widget-disabled").addClass(classNames);
			}).parent().addClass(classNames);
		}
	});
// 强制预览和填写编辑摘要 - 结束

参阅