미디어위키:Common.js

Admin (토론 | 기여)님의 2026년 5월 12일 (화) 08:25 판 (아카디아 게시판 -> 아카디아 포럼 명칭 변경, 모바일 viewport 대응 추가)

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
/* 아카디아 포럼 - 우측 상단 알약 탭 삽입 */
$(function() {
    if ($('.akadia-portal-links').length) return;
    var $portal = $('<div class="akadia-portal-links"></div>');
    $portal.append('<a href="https://forum.akadia.kr/" class="akadia-portal-link" title="아카디아 포럼">아카디아 포럼</a>');
    var $target = $('.vector-user-links').first();
    if ($target.length) { $target.before($portal); } else { $('#p-personal').before($portal); }
});

/* 모바일 viewport 대응: 기본 viewport가 width=1000으로 고정되어 있어 디바이스 폭에 맞게 재설정 */
(function() {
    var screenW = window.screen && window.screen.width;
    if (screenW && screenW <= 720) {
        var meta = document.querySelector('meta[name="viewport"]');
        var content = 'width=device-width, initial-scale=1, shrink-to-fit=no';
        if (meta) { meta.setAttribute('content', content); }
        else {
            meta = document.createElement('meta');
            meta.name = 'viewport';
            meta.content = content;
            document.head.appendChild(meta);
        }
    }
})();

/* 본문 하이퍼링크를 새 탭으로 열기 */
mw.hook('wikipage.content').add(function ($content) {
    $content.find('a').each(function () {
        var $a = $(this);
        var href = $a.attr('href');
        if (!href) return;
        // 섹션 앵커(#section)는 새 탭으로 열지 않음
        if (href.charAt(0) === '#') return;
        // 섹션 편집(== 편집 ==) 링크는 새 탭으로 열지 않음
        if ($a.closest('.mw-editsection').length) return;
        $a.attr('target', '_blank');
        var rel = $a.attr('rel') || '';
        if (rel.indexOf('noopener') === -1) {
            $a.attr('rel', (rel + ' noopener noreferrer').trim());
        }
    });
});