MediaWiki:Gadget-osm.js

З Вікіпедыі, свабоднай энцыклапедыі

Заўвага: Пасля апублікавання, вам можа спатрэбіцца ачыстка кэшу браўзера, каб убачыць унесеныя змены.

  • Firefox / Safari: націсніце Reload, утрымліваючы Shift, або націсніце Ctrl-F5 ці Ctrl-R (⌘-R на Макінтошах)
  • Google Chrome: Націсніце Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer / Edge: націсніце Refresh, утрымліваючы Ctrl, або націсніце Ctrl-F5
  • Opera: Увайдзіце Menu → Settings (Opera → Preferences на Mac), далей Privacy & security → Clear browsing data → Cached images and files.
( function ( mw, $ ) {
	var osmToggle = function ( e ) {
		e.preventDefault();
		var osm = $( '#openstreetmap' );
		if ( osm.length > 0 ) {
			osm.toggle();
		} else {
			var src = '//tools.wmflabs.org/wiwosm/osm-on-ol/kml-on-ol.php?' + 
				$.param( {
					lang: 'be',
					uselang: 'be',
					params: $( this ).attr( 'params' ),
					title: mw.config.get( 'wgTitle' )
				} );
			$( '#contentSub' ).append(
				$( '<iframe>' )
					.attr( 'id', 'openstreetmap' )
					.attr( 'src', src )
					.css( {
						width: '100%',
						height: '350px',
						clear: 'both'
					} )
			);
		}
		return false;
	};
	
	var osmInit = function () {
		var $coord = $( '#coordinates, #mw-indicator-0-coord' ),
			$coordLink = $coord.find( 'a' ),
			url;
		for ( var i = 0; i < $coordLink.length; i++ ) {
			url = $coordLink[i].href;
			if ( !/geohack/.test( url ) || /_globe:\w+/.test( url ) ) {
				continue;
			}
			if ( $coord.css( 'position' ) === 'static' ) {
				$coord.css( 'position', 'relative' );
			}
			$coord.append(
				$( '<a>' )
					.text( 'Паказаць геаграфічную карту' )
					.attr( 'href', '#' )
					.attr( 'params', mw.util.getParamValue( 'params', url ) )
					.css( {
						position: 'absolute',
						right: 0,
						bottom: '-13px',
						fontSize: '11px'
					} )
					.on( 'click', osmToggle )
			);
			break;
		}
	};

	var DOMLoaded = $( '#coordinates, #mw-indicator-0-coord' ).find( 'a' ).length;
	if ( DOMLoaded ) {
		osmInit();
	} else {
		mw.hook( 'wikipage.content' ).add( osmInit );
	}
	
}( mediaWiki, jQuery ) );