Zeile 1: |
Zeile 1: |
| /* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */ | | /* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */ |
| + | console.log('Greetings from MediaWiki:Common.js new one'); |
| | | |
− | // Verwendung von OpenStreetMap in Wikipedia. | + | /* ************************************************* |
− | // (c) 2008 by Magnus Manske | + | * Reinitialize leaflet after each tab change. |
− | // Released under GPL
| + | * fixes #36 |
− | | + | */ |
− | | + | $(document).ready(function() { |
− | function openStreetMapInit () { | + | $('.tabs-label').click(function(e) { |
− | c = document.getElementById ( 'coordinates' ) ;
| + | var mapExists = setInterval(function() { |
− | if ( !c ) return ;
| + | var counter = 0; |
− | | + | var mapsLeafletList = window.mapsLeafletList; |
− | a = c.getElementsByTagName ( 'a' ) ;
| + | if (mapsLeafletList && mapsLeafletList.length) { |
− | geohack = 0 ;
| + | mapsLeafletList.forEach(function(l) { |
− | for ( i = 0 ; i < a.length ; i++ ) {
| + | if (l.map) { |
− | h = a[i].href ;
| + | l.map.invalidateSize(false); |
− | if ( !h.match(/geohack/) ) continue ;
| + | clearInterval(mapExists); |
− | geohack = 1 ;
| + | } |
− | break ;
| + | }); |
− | }
| + | } |
− | if ( geohack == 0 ) return ;
| + | if (counter++ > 10) clearInterval(mapExists); |
− | | + | }, 100); |
− | na = document.createElement ( 'a' ) ;
| + | }); |
− | na.href = '#' ;
| + | }); |
− | na.onclick = openStreetMapToggle ;
| |
− | na.appendChild ( document.createTextNode ( 'OSM' ) ) ;
| |
− | // c.appendChild ( document.createElement ( 'br' ) )
| |
− | c.appendChild ( document.createTextNode ( '(' ) ) ;
| |
− | c.appendChild ( na ) ;
| |
− | c.appendChild ( document.createTextNode ( ') ' ) ) ;
| |
− | }
| |
− | | |
− | function openStreetMapToggle () { | |
− | c = document.getElementById ( 'coordinates' ) ;
| |
− | if ( !c ) return ;
| |
− | cs = document.getElementById ( 'contentSub' ) ;
| |
− | osm = document.getElementById ( 'openstreetmap' ) ;
| |
− | | |
− | if ( cs && osm ) {
| |
− | cs.removeChild ( osm ) ;
| |
− | return ;
| |
− | }
| |
− | | |
− | a = c.getElementsByTagName ( 'a' ) [0] ;
| |
− | h = a.href ;
| |
− | h = h.split('params=')[1] ;
| |
− |
| |
− | i = document.createElement ( 'iframe' ) ;
| |
− | url = 'http://tools.wikimedia.de/~magnus/ol/wp_poi.php?title=' + wgTitle ;
| |
− | url += '&language=' + wgUserLanguage ;
| |
− | url += '¶ms=' + h ;
| |
− | i.id = 'openstreetmap' ;
| |
− | i.style.width = '100%' ;
| |
− | i.style.height = '300px' ;
| |
− | i.style.clear = 'both' ;
| |
− | i.src = url ;
| |
− | cs.appendChild ( i ) ;
| |
− | } | |
− | | |
− | | |
− | addOnloadHook(openStreetMapInit);
| |