MediaWiki:Common.js

Revision as of 10:38, 29 June 2022 by Resultofunion (talk | contribs) (새 문서: →‎이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다.: →‎TOP 버튼: var topButton = document.createElement('div'); topButton.id = 'top-button'; document.body.appendChild(topButton); window.addEventListener('scroll', function (e) { if (window.scrollY > 300) { topButton.classList.add('active'); } else { topButton.classList.remove('active'); } }); topButton.addEventListener('click', function (e) { try {...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */


/* TOP 버튼 */
var topButton = document.createElement('div');
topButton.id = 'top-button';
document.body.appendChild(topButton);
window.addEventListener('scroll', function (e) {
    if (window.scrollY > 300) {
        topButton.classList.add('active');
    } else {
        topButton.classList.remove('active');
    }
});
topButton.addEventListener('click', function (e) {
    try {
        window.scrollTo({
            top: 0,
            left: 0,
            behavior: 'smooth',
        });
    } catch (e) {
        window.scrollTo(0, 0);
    }
});

/* 대문 섹션 토글 */
if (mw.config.get('wgPageName') == '대문' || mw.config.get('wgPageName') == '대문테스트') {
    var titles = document.querySelectorAll('.cog-box-title');
    for (var i = 0; i < titles.length; i++) {
        titles[i].addEventListener('click', function (e) {
            if (e.currentTarget.classList.contains('open')) {
                e.currentTarget.classList.remove('open');
            } else {
                e.currentTarget.classList.add('open');
            }
        });
    }
}

/*모든 문서 */
if (mw.config.get('wgPageName').toLowerCase() == '모든_문서_목록') {
    var list = document.querySelectorAll('.mw-allpages-body li');
    for (var i = 0; i < list.length; i++) {
        var title = list[i].querySelector('a').title;
        if (title.indexOf(':') != -1) {
            list[i].parentNode.removeChild(list[i]);
        }
    }
    document.querySelector('.cog-commonpages').style.display = '';
}

/* 각주 팝업창 위치 보정 */
document.body.addEventListener(
    'DOMNodeInserted',
    function (e) {
        if (e.target.classList && e.target.classList.contains('mwe-popups')) {
            requestAnimationFrame(function () {
                var bodyLeft = document.body.getBoundingClientRect().left;
                var left = parseInt(window.getComputedStyle(e.target).left);
                e.target.style.left = left - bodyLeft + 'px';
            });
        }
    },
    false
);

/* 우클릭 방지 */
window.oncontextmenu = function (e) {
    return e.preventDefault();
};
window.onselectstart = function (e) {
    return e.preventDefault();
};

/* 존재하지 않는 문서 페이지의 '기록' 링크 삭제 */
if (mw.config.get('wgUserId') == null && document.querySelector('.plainlinks a')) {
    document.querySelector('.plainlinks a').removeAttribute('href');
    document.querySelector('.plainlinks a').classList.add('disable');
}

// 대문 공유 버튼
var sharebox = document.querySelector('.wikishare_toolbox');
if (sharebox) {
    sharebox.classList.add('a2a_kit_size_20');
    sharebox.classList.add('a2a_kit');
    var shares = ['Facebook', 'Twitter', 'Email', 'Line', 'Kakao', 'SMS'];
    for (var i in shares) {
        var elem = document.querySelector('[title="Share on ' + shares[i] + '"] a');
        elem.href = '';
        elem.classList.add('a2a_button_' + shares[i].toLowerCase());
    }
    document.querySelector('[title="Share on KakaoTalk"] a').href = '#';
    document.querySelector('[title="Share on KakaoTalk"] a').removeAttribute('target');

    var share_cdn = document.createElement('script');
    share_cdn.src = 'https://static.addtoany.com/menu/page.js';
    var kakao_cdn = document.createElement('script');
    kakao_cdn.src = 'https://developers.kakao.com/sdk/js/kakao.min.js';
    document.body.appendChild(share_cdn);
    document.body.appendChild(kakao_cdn);

    window.onload = function () {
        // 사용할 앱의 JavaScript 키를 설정해 주세요.
        Kakao.init('5bbf33cb4d93dd3d2100996872cf8e44');
        document.querySelector('[title="Share on KakaoTalk"]').onclick = function () {
            // 카카오 Link 공유 API 사용
            Kakao.Link.sendScrap({
                requestUrl: location.href,
            });
        };
		if(window.wcs) {
			wcs_do();
		}        
    };
}