MédhiaWiki:Gadget-PreviewWithVariant.js

Saka Wikipédia Jawa, bauwarna mardika basa Jawa

Cathetan: Nalika rampung nyimpen, panjenengan kudu mbusek telihing pangluruné panjenengan supaya owahané katon.

  • Firefox / Safari: Pencèt Shift nalika ngeklik Reload, utawa pencèt Ctrl-F5 utawa Ctrl-R (⌘-R ing Mac)
  • Google Chrome: Pencèt Ctrl-Shift-R (⌘-Shift-R ing Mac)
  • Internet Explorer / Edge: Pencèt Ctrl nalika ngeklik Refresh, utawa pencèt Ctrl-F5
  • Opera: Menyang Menu → Settings (Opera → Preferences ing Mac) nuli menyang Privacy & security → Clear browsing data → Cached images and files.
// <nowiki>
/*
  本工具會在「顯示預覽」按鈕增加選單,選單裏有各種地區字詞轉換的語言
  當按下「顯示預覽」後,便會以選單中所選的地區字詞來預覽
  這可以毋須在保存後再切換用字模式才能看到效果,直接用預覽便可檢視各種用字模式,從而減少bug的保存
*/

	$(function() {
		//偵測「顯示預覽」按鈕
		$('#wpPreview, input[name=wpTemplateSandboxPreview]').each( function(){
			var $this=$(this);
			
			//建立菜單
			var $listVariant=this.$listVariant=$('<select />')
			.attr("name", ("listVariant_"+$this.attr("name")) || ("listVariant_"+$this.attr("id")) )
			.attr("id"  , ("listVariant_"+$this.attr("id")) || ("listVariant_"+$this.attr("name")) )
			;
			
			//建立菜單選項
			(function addVarOpt(text, variant){
				$("<option />")
				.text(text)
				.each( function(){
					this.selected=this.defaultSelected=mw.config.get('wgUserVariant')==(this.value=variant);
				})
				.appendTo($listVariant)
				;
				
				return addVarOpt;
			})
			if (typeof wgULS === 'undefined') {
				mw.log.error('wgULS is undefined.');
				return;
			}
			(wgULS("Aja dikonversi","ꦲꦗꦢꦶꦏꦺꦴꦤ꧀ꦮ꦳ꦺꦂꦱꦶ"), "jv")
			("Latin", "jv-latn")
			("ꦗꦮ", "jv-java")
			;
			
			//为了保障OOUI下button所包裹其span的功能,将button与其包裹的span作为整体去调整
			var $insertBlock=$this.parent("span");
			//安排位置
			$('<span />')
			.css({
				 "border"      : "1px dashed grey"
				,"white-space" : "nowrap"
				,"padding"     : "10px"
			})
			.text("以")
			.append($listVariant)
			.insertAfter($insertBlock)
			.append($insertBlock)
			;
			
			//修改預覽按鈕單擊動作
			$this.click( function(){
				//被按下時在表單傳送字串添加variant參數
				var listVariantValue=this.$listVariant.find("option:selected").get(0).value;
				
				mw.config.set('wgUserLanguage', listVariantValue);
				var $form=$this.parents("form");
				$form.attr(
					 "action"
					,$form
					 .attr("action")
					 .replace(/\&variant\=[^\&\?\#]*($|\&)/g, "$1")
					 .replace(/\?variant\=[^\&\?\#]*(?:$|\&)/, "?")
					 .replace(/\?/,"?variant="+listVariantValue+"&")
					 .replace(/\&$/, "")
				);
			});
			
		});
	});

// </nowiki>