MediaWiki:Gadget-ondemand-inputBoxNoPrefix.js (MediaWiki&Gadget-ondemand-inputBoxNoPrefixQjs)
Перейти к навигации
Перейти к поиску
JS-код ниже относится к скрытому гаджету «Вынос префикса пространства имён вне поля ввода (в основном в Инкубаторе)» (править описание). Он вызывается по умолчанию на страницах в категории Википедия:Страницы с гаджетом по требованию inputBoxNoPrefix.
После сохранения или недавних изменений очистите кэш браузера.
// Использование: см. [[Шаблон:Выполнить скрипт]]
// <div class="inputbox-no-prefix"><inputbox>...</div>
mw.loader.using( 'mediawiki.util', () => {
mw.util.addCSS( '.inputbox-no-prefix span.prefix { margin-right: 0.5em; }' );
} );
mw.hook( 'wikipage.content' ).add( function( $content ) {
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) return;
function restorePrefix(){
var sp = $(this).find('span.prefix').remove()
if( !sp.length ) return
this.title.value = sp.text() + this.title.value
}
// Move prefix away from input
$content.find( '.inputbox-no-prefix' )
.find( 'form' )
.each( function( i, frm ) {
//in case user clicked 'back' browser button
$( frm ).find( 'span.prefix' ).remove();
var ttl = frm.title; // same as $(frm).find('input[name=title]')
var prefix = /^.+[:\/]/.exec( ttl.defaultValue )
if (!prefix ) return;
prefix = prefix[0];
$( '<span class="prefix" />' ).text( prefix ).insertBefore( ttl );
ttl.value = ttl.value.substring( prefix.length );
ttl.size -= prefix.length;
$( frm ).submit( restorePrefix );
} );
} );