|
|
Строка 49: |
Строка 49: |
|
| |
|
| /** | | /** |
| * Выполнение скриптов из пространства MediaWiki, указанных в URL | | * ImageStacks |
| * См. также https://www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL | | * Maintainer: [[User:Hellerhoff]], [[User:DieBuche]] |
| */ | | */ |
| var withJS = location.href.match( /[&?]withjs=((mediawiki:)?([^&<>=#]+\.js))/i );
| | // Only load if page contains template |
| if ( withJS ) { | | mw.hook( 'wikipage.content' ).add( function ( $content ) { |
| importScript_( 'MediaWiki:' + withJS[3] );
| | if ( $content.find( 'div.ImageStack' ).length ) mw.loader.load( 'ext.gadget.ImageStack' ); |
| }
| |
| | |
| /**
| |
| * Код, который нужно выполнить как можно раньше. Он выполняется, если загружен подвал страницы,
| |
| * иначе же ждёт наступления события wikipage.content (см. выше определение runAsEarlyAsPossible
| |
| * и ниже про wikipage.content).
| |
| */
| |
| runAsEarlyAsPossible( function () {
| |
| /**
| |
| * {{выполнить скрипт}}
| |
| */
| |
| $( '.executeJS' ).each( function () {
| |
| var names = $( this ).data( 'scriptnames' );
| |
| if (names) {
| |
| names.split( ' ' ).forEach( function ( name ) {
| |
| name = name.replace( /[^\w_-]/g, '' );
| |
| if ( name ) {
| |
| importScript( 'MediaWiki:Script/' + name + '.js' );
| |
| }
| |
| } );
| |
| }
| |
| } );
| |
| } ); | | } ); |