MediaWiki:Common.js: Forskelle mellem versioner
Spring til navigation
Spring til søgning
Egel (diskussion | bidrag) (copy from da.wikipedia.org) |
(Ingen forskel)
|
Versionen fra 18. okt. 2013, 15:03
/* Javascript inkluderet her vil være aktivt for alle brugere. */ // ============================================================ // BEGIN Enable multiple onload functions // setup onload functions this way: // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! if (!window.aOnloadFunctions) { var aOnloadFunctions = new Array(); } window.onload = function() { if (window.aOnloadFunctions) { for (var _i=0; _i<aOnloadFunctions.length; _i++) { aOnloadFunctions[_i](); } } } // END Enable multiple onload functions // ============================================================ /** WikiMiniAtlas ******************************************************* * * Description: WikiMiniAtlas is a popup click and drag world map. * This script causes all of our coordinate links to display the WikiMiniAtlas popup button. * The script itself is located on meta because it is used by many projects. * See [[Meta:WikiMiniAtlas]] for more information. * Created by: [[User:Dschwen]] */ document.write('<script type="text/javascript" src="' + '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); /* Test if an element has a certain class ************************************** * * Description: Uses regular expressions and caching for better performance. * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]] */ var hasClass = (function () { var reCache = {}; return function (element, className) { return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); }; })(); function LinkFA() { // iterate over all <span>-elements for(var i=0; a = document.getElementsByTagName("span")[i]; i++) { // if found a FA span if(a.className == "FA") { // iterate over all <li>-elements for(var j=0; b = document.getElementsByTagName("li")[j]; j++) { // if found a FA link if(b.className == "interwiki-" + a.id) { b.style.padding = "0 0 0 16px"; b.style.backgroundImage = "url('//upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Symbol_star_gold.svg/15px-Symbol_star_gold.svg.png')"; b.style.backgroundRepeat = "no-repeat"; b.title = "Denne artikel er markeret som en fremragende artikel."; } } } } } aOnloadFunctions[aOnloadFunctions.length] = LinkFA; function LinkGA() { var a; // iterate over all <span>-elements for(var i=0; a = document.getElementsByTagName("span")[i]; i++) { // if found an GA span if(a.className == "GA") { // iterate over all <li>-elements var b; for(var j=0; b = document.getElementsByTagName("li")[j]; j++) { // if found an GA link if(b.className == "interwiki-" + a.id) { b.style.padding = "0 0 0 16px"; b.style.backgroundImage = "url('//upload.wikimedia.org/wikipedia/commons/thumb/9/94/Symbol_support_vote.svg/14px-Symbol_support_vote.svg.png')"; b.style.backgroundRepeat = "no-repeat"; b.title = "Denne artikel er markeret som en god artikel."; } } } } } aOnloadFunctions[aOnloadFunctions.length] = LinkGA; /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[Wikipedia:NavFrame]]. * Maintainers: [[User:R. Koot]] */ var autoCollapse = 2; var collapseCaption = "skjul"; var expandCaption = "vis"; function collapseTable( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "collapsible" ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; if (!HeaderRow) continue; var Header = HeaderRow.getElementsByTagName( "th" )[0]; if (!Header) continue; NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) { collapseTable( i ); } } } addOnloadHook( createCollapseButtons ); /** Flyt portallinks ****************************************************** * * Beskrivelse: Flytter portallinks op i toppen af siden. Bruges af [[:Skabelon:Portaltop]] */ addOnloadHook( function () { try { var x = document.getElementById('siteSub'); if(!x) return; var y = document.getElementById('portlinks'); if(!y) return; var str = y.innerHTML; if (str.length) str = str.replace(/(?: | |\u00a0|\u000d|\x0d|\r|\u000a|\x0a|\n)*(?:·|·|\|)(?: | |\u00a0|\u000d|\x0d|\r|\u000a|\x0a|\n)*/g, ", "); y = y.parentNode; if(!y) return; y.parentNode.removeChild(y); x.innerHTML = str; } catch (e) { // Woopsie, die without a notice } }); // Flyt portallinks slut // OpenStreetMap til at åbne i artikler med koordinater - ligger i egen js fil. Inkludert af [[Bruger:Nico]] efter vejledning af [[:no:Bruker:Haros]] var osm_proj_map='kort'; //"map" in project language var osm_proj_lang='da'; //project language var metaBase = "//meta.wikimedia.org"; importScriptURI(metaBase+'/w/index.php?title=MediaWiki:OSM.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400'); /* * Description: Stay on the secure server as much as possible * Maintainers: [[User:TheDJ]] */ if(wgServer == 'https://secure.wikimedia.org') { mw.loader.load('https://secure.wikimedia.org/wikipedia/no/w/index.php?title=MediaWiki:Common.js/secure.js'); } /** * iProject (InterProjectLinks) * Written by: Erwin ([[:nl:MediaWiki:IProject.js]]), modified by Kildor * Description: Adds links to other WMF projects in the sidebar * ([[:bugzilla:708]]). Works for all skins with a sidebar. * * Originally written by Magnus Manske. Version forked from * [[:es:MediaWiki:Common.js]] and [[:de:wikt:Mediawiki:monobook.js]] */ function iProject() { // Find templates with interproject links. These templates should have a div // with class 'interProject' that only contains a link to the other project. iProjectLinks = getElementsByClassName(document, 'div', 'interProject'); if (iProjectLinks.length > 0) { // The element below should always be available. To not break code // we do check for it, but don't have a fallback. if (document.getElementById('p-tb')) { prevNode = document.getElementById('p-tb'); } else { return false; } // Clone previous node including child nodes. interProject = prevNode.cloneNode(true); interProject.id = 'p-project'; // Set header of new toolbox h = interProject.getElementsByTagName('h5'); if(h[0]) { h[0].innerHTML = 'På andre projekter'; } // The links are included in the first and only div of the toolbox d = interProject.getElementsByTagName('div'); if(d[0]) { d = d[0]; } else { return false; } // Remove current children, i.e. current ul element. while(d.hasChildNodes()) { d.removeChild(d.childNodes[0]) } // Create new list with links ul = document.createElement('ul') ul.className += " interProject"; for (i = 0; i< iProjectLinks.length; i++) { li = document.createElement('li'); li.className += " " + iProjectLinks[i].className; li.innerHTML = iProjectLinks[i].innerHTML; ul.appendChild(li) } d.appendChild(ul); // Insert new node prevNode.parentNode.insertBefore(interProject, prevNode.nextSibling); } } addOnloadHook(iProject); /* * Description: Stay on the secure server as much as possible * Maintainers: [[User:TheDJ]] */ if(wgServer == 'https://secure.wikimedia.org') { importScript( 'MediaWiki:Common.js/secure.js'); } /* End */