Benutzer:Schnark/js/specialinterwiki.js
aus Wikipedia, der freien Enzyklopädie
< Benutzer:Schnark | js
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>