Перейти к содержанию

MediaWiki:Vector-2022.js

Материал из osmost.ru

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

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
mw.loader.using( 'mediawiki.util' ).then( function () {
    var buttonText = 'Купить оборудование';
    var buttonHref = mw.utill.getUrl( 'https://osmost.ru/' );

    function insertAfter( referenceNode, newNode ) {
        if ( !referenceNode || !referenceNode.parentNode ) {
            return;
        }
        referenceNode.parentNode.insertBefore( newNode, referenceNode.nextSibling );
    }

    function createButton() {
        var link = document.createElement( 'a' );
        link.className = 'cdx-button cdx-button--action-progressive cdx-button--weight-primary mw-custom-header-button';
        link.href = buttonHref;
        link.textContent = buttonText;
        return link;
    }

    function addMainHeaderButton() {
        var searchBlock = document.querySelector( '.vector-header-end > #p-search' );
        if ( !searchBlock || document.querySelector( '.vector-header-end > .mw-custom-header-button' ) ) {
            return;
        }

        insertAfter( searchBlock, createButton() );
    }

    function addStickyHeaderButton() {
        var stickySearchBlock = document.querySelector( '#vector-sticky-header .vector-search-box-vue' );
        if ( !stickySearchBlock || document.querySelector( '#vector-sticky-header > .mw-custom-header-button' ) ) {
            return;
        }

        insertAfter( stickySearchBlock, createButton() );
    }

    function init() {
        addMainHeaderButton();
        addStickyHeaderButton();
    }

    if ( document.readyState === 'loading' ) {
        document.addEventListener( 'DOMContentLoaded', init );
    } else {
        init();
    }
} );