MediaWiki:Common.js
Версия от 12:29, 1 ноября 2026; Ivgon (обсуждение | вклад)
Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Выберите очистку кэша в меню Инструменты → Настройки
// Функция, которая принудительно встраивает кнопку Викификатора в HTML-код панели
function injectWikificator() {
// Ищем группу кнопок "Вставка" (insert) на оригинальной панели WikiEditor
var $insertGroup = $( '.wikiEditor-ui-toolbar .section-main .group-insert' );
// Если панель еще не отрисовалась, выходим (таймер попробует снова)
if ( !$insertGroup.length ) return;
// Проверяем, не добавили ли мы кнопку ранее, чтобы избежать дублирования
if ( $( '#wikif-custom-btn' ).length ) return;
// Создаем элемент кнопки в стиле WikiEditor
var $button = $( '<a>' )
.attr( {
'id': 'wikif-custom-btn',
'href': '#',
'title': 'Викификатор',
'class': 'tool tool-button'
} )
.append( $( '<img>' ).attr( {
'src': '//upload.wikimedia.org/wikipedia/commons/0/06/Wikificator_button.png',
'alt': 'Викификатор',
'width': 22,
'height': 22
} ) );
// Задаем действие при клике на кнопку
$button.click( function ( e ) {
e.preventDefault();
if ( typeof Wikify === 'function' ) {
Wikify();
} else {
// Подгружаем текстовый процессор напрямую из вики
$.getScript( '/wiki/index.php?title=MediaWiki:Wikificator.js&action=raw&ctype=text/javascript' )
.done( function () {
if ( typeof Wikify === 'function' ) Wikify();
} );
}
} );
// Вставляем кнопку в самый конец группы "Вставка"
$insertGroup.append( $button );
}
// Запуск логики только на страницах редактирования/создания статей
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
$( document ).ready( function () {
// Запускаем постоянную проверку появления панели (интервал 100мс),
// так как панель WikiEditor подгружается асинхронно
var checkExist = setInterval( function () {
if ( $( '.wikiEditor-ui-toolbar .section-main .group-insert' ).length ) {
injectWikificator();
clearInterval( checkExist ); // Останавливаем таймер, когда кнопка успешно встала
}
}, 100 );
} );
}