Benutzer:Schnark/js/specialinterwiki.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
 //Dokumentation auf [[Benutzer:Schnark/js/specialinterwiki]] <nowiki>
 /*global mediaWiki*/
 (function($,mw){
 "use strict";

 functioninitL10N(l10n,keep){
 vari,chain=mw.language.getFallbackLanguageChain();
 keep=$.grep(mw.messages.get(keep),function(val){
 returnval!==null;
 });
 for(i=chain.length-1;i>=0;i--){
 if(chain[i]inl10n){
 mw.messages.set(l10n[chain[i]]);
 }
 }
 mw.messages.set(keep);
 }

 functiongo(e){
 variw=$('#interwiki-input').val(),
 href=mw.config.get('wgNamespaceNumber')===-1?getHrefSpecial(iw):getHrefMW(iw);
 e.preventDefault();
 if(mw.config.get('wgServer')==='http://localhost'){
 window.alert(href);
 }else{
 window.location.href=href;
 }
 }

 functiongetHrefSpecial(iw){
 varsp,href,search,
 title,searchParam,index;
 sp=mw.config.get('wgCanonicalSpecialPageName');
 if(!sp){
 sp=mw.config.get('wgTitle');
 }
 href=mw.config.get('wgScript')+'?title='+iw+':Special:'+encodeURIComponent(sp);
 search=window.location.search.replace(/^\?/,'&');
 title=decodeURIComponent(
 (/.*&title=([^&]*)/.exec(search)||[])[1]||
 window.location.pathname
 );
 searchParam=(/.*&search=([^&]*)/.exec(search)||[])[1];
 search=search.replace(/&title=[^&]*/g,'').replace(/&search=[^&]*/g,'');//title und search entfernen
 index=title.indexOf(mw.config.get('wgPageName').replace(/\/.*$/,'')+'/');
 if(index>-1){
 title=encodeURIComponent(title.slice(index+1+mw.config.get('wgPageName').replace(/\/.*$/,'').length));
 href+='/'+title;
 }elseif(searchParam){
 href+='/'+searchParam;
 }
 returnhref+search+window.location.hash;
 }
 functiongetHrefMW(iw){
 returnmw.config.get('wgScript')+'?title='+iw+':MediaWiki:'+
 encodeURIComponent(mw.config.get('wgTitle'));
 }

 functionmakePortlet(){
 var$iw=$('#p-lang'),$tb;
 if($iw.length){
 return$iw;
 }
 $tb=$('#p-tb');
 if($tb.length===0){
 return$tb;
 }
 $iw=$tb.clone().attr({
 id:'p-lang',
 'aria-labelledby':'p-lang-label'
 });
 $iw.find('h3').attr('id','p-lang-label').text(mw.msg('otherlanguages'));
 $iw.find('ul').empty();
 $tb.parent().append($iw);
 return$iw;
 }

 functioninit(){
 initL10N({
 en:{
 'otherlanguages':'In other languages',
 'schnark-specialinterwiki-button':'>'
 },
 de:{
 'otherlanguages':'In anderen Sprachen'
 }},['otherlanguages']);
 var$iw=makePortlet();
 if($iw.length===0){
 return;
 }
 $iw.find('ul').append('<li><form id="schnark-specialinterwiki" style="display: flex;">'+
 mw.html.element('input',{
 id:'interwiki-input',size:5,'class':'noime',
 value:mw.user.options.get('userjs-schnark-specialinterwiki-iw','en')
 })+
 mw.html.element('input',{
 type:'submit',
 value:mw.msg('schnark-specialinterwiki-button')
 })+
 '</form></li>');
 $('#schnark-specialinterwiki').on('submit',go);
 }

 if(mw.config.get('wgNamespaceNumber')===-1||mw.config.get('wgNamespaceNumber')===8){
 $.when(mw.loader.using(['user.options','mediawiki.language']),$.ready).then(init);
 }

 })(jQuery,mediaWiki);
 //</nowiki>
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Benutzer:Schnark/js/specialinterwiki.js&oldid=193315352"