미디어위키:Common.js 문서 원본 보기
←
미디어위키:Common.js
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
이 문서는 소프트웨어 인터페이스에 쓰이는 문서로, 부정 행위를 막기 위해 보호되어 있습니다.
이 문서는
관리자
만이 수정할 수 있습니다. 내용의 변경이 필요하다면
관리자 요청
에 편집 요청을 남겨 주세요.
모든 방문자에게 영향을 미칠 수 있기 때문에 이 자바스크립트 문서의 편집 권한이 없습니다.
문서의 원본을 보거나 복사할 수 있습니다.
/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */ /*<source lang="javascript"><nowiki>*/ /** [[틀:USERNAME]]에서 사용하는 바꿔치기 함수 * 작성자: [[:en:User:Splarka]] */ function UserNameReplace() { if (typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace) return; for (var i=0; UserName = document.getElementsByTagName("span")[i]; i++) { if ((document.getElementById('pt-userpage'))&&(UserName.getAttribute('id') == "insertusername")) { UserName.innerHTML = wgUserName; } } }; addOnloadHook(UserNameReplace); /** [[틀:제목]]에서 사용하는 제목 바꿔치기 함수 * 작성자: [[:en:User:Sikon]] */ function rewriteTitle() { if (typeof(SKIP_TITLE_REWRITE) != 'undefined' && SKIP_TITLE_REWRITE) return; var titleDiv = document.getElementById('title-meta'); if (titleDiv == null || titleDiv == undefined) return; var cloneNode = titleDiv.cloneNode(true); var firstHeading = YAHOO.util.Dom.getElementsByClassName('firstHeading', 'h1', document.getElementById('content') )[0]; var node = firstHeading.childNodes[0]; // new, then old! firstHeading.replaceChild(cloneNode, node); cloneNode.style.display = "inline"; var titleAlign = document.getElementById('title-align'); firstHeading.style.textAlign = titleAlign.childNodes[0].nodeValue; } addOnloadHook(rewriteTitle, false); /* from en: */ var hasClass = (function () { var reCache = {}; return function (element, className) { return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); }; } )(); /* [[:en:Wikipedia:WikiProject User scripts/Scripts/Add edit section 0]] [[위키백과:사랑방/2007년 1월#듕귁어판을 보니 section 0 편집 방법이 있더군요]] */ /* 영어 위키백과 버전 */ function addEditZero() { var x; if (!(x = document.getElementById('ca-edit') )) return; var url; if (!(url = x.getElementsByTagName('a')[0] )) return; if (!(url = url.href )) return; var y = addPortletLink('p-cactions', url+"§ion=0", '0', 'ca-edit-0', '문서의 첫 부분만을 편집합니다.', '0', x.nextSibling); y.className = x.className; // steal classes from the the edit tab... x.className = 'istalk'; // ...and make the edit tab have no right margin // exception: don't steal the "selected" class unless actually editing section 0: if (/(^| )selected( |$)/.test(y.className)) { if (!document.editform || !document.editform.wpSection || document.editform.wpSection.value != "0") { y.className = y.className.replace(/(^| )selected( |$)/g, "$1"); x.className += ' selected'; } } } addOnloadHook(addEditZero); /* ([[위키백과:관리자 요청/2007년 5월#스크립트 추가 요청]]) */ /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * Wikipedia:NavFrame. * Maintainers: User:R. Koot */ //var autoCollapse = 2; //var collapseCaption = "hide"; //var expandCaption = "show"; function collapseTable( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.getElementsByTagName( "tr" ); if ( Button.firstChild.data == collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "collapsible" ) ) { NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0]; /* only add button and increment count if there is a header row to work with */ if (Header) { Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } } for ( var i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) { collapseTable( i ); } } } addOnloadHook( createCollapseButtons ); /* ([[위키백과:관리자 요청/2007년 5월#스크립트 추가 요청]]) */ /** Dynamic Navigation Bars (experimental) ************************************* * * Description: See [[:en:Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ // set up the words in your language var autoCollapse = 2; var collapseCaption = "숨기기"; var expandCaption = "보이기"; var NavigationBarHide = '[' + collapseCaption + ']'; var NavigationBarShow = '[' + expandCaption + ']'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden var NavigationBarShowDefault = autoCollapse; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == NavigationBarHide) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if ( hasClass( NavChild, 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( hasClass( NavChild, 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (hasClass(NavChild, 'NavPic')) { NavChild.style.display = 'block'; } if (hasClass(NavChild, 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = NavigationBarHide; } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName("div"); for (var i=0;NavFrame = divs[i];i++) { // if found a navigation bar if (hasClass(NavFrame, "NavFrame")) { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); var NavToggleText = document.createTextNode(NavigationBarHide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for ( var j=0; j < NavFrame.childNodes.length; j++ ) { if (hasClass(NavFrame.childNodes[j], "NavHead")) { NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for ( var i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } addOnloadHook( createNavigationBarToggleButton ); /** 특집 기사에 별표를 붙이는 함수. * 작성자: [[미상]] */ function LinkFA() { // iterate over all <span>-elements for (var i=0; a = document.getElementsByTagName("span")[i]; i++) { // if found a FA span if (a.className == "FA") { var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" ); for ( var j = 0; j < InterwikiLinks.length; j++ ) { if ( InterwikiLinks[j].className == "interwiki-"+a.id) { InterwikiLinks[j].className += " FA"; InterwikiLinks[j].title = "이 글은 특집 기사입니다."; } } } } } addOnloadHook(LinkFA); /** 대문의 탭을 "프로젝트"->"대문"으로 바꾸는 함수. * 작성자: [[미상]] */ function MainPageRenameNamespaceTab() { try { var Node = document.getElementById('ca-nstab-project').firstChild; if (Node.textContent) { Node.textContent = "대문"; } else if ( Node.innerText ) { // IE Node.innerText = "대문"; } else { Node.replaceChild(Node.firstChild, document.createTextNode("대문")); } } catch (e) { } } if (wgPageName == "백괴사전:대문" || wgPageName == "백괴사전토론:대문") { addOnloadHook(MainPageRenameNamespaceTab); } /** 자매 프로젝트에 맞게 로고 URL을 변경하는 함수. * 백괴팩 설치 필요. * 작성자: [[사용자:Cyrus H.]] */ var siflIsUngameMain=false; function runLogoLinkChanger() { if (wgPageName.indexOf(":")==-1) return true; var siflSlicedPageName=wgPageName.split(":"); var siflPageNamespace=siflSlicedPageName[0]; siflSlicedPageName=siflSlicedPageName[1].split("/"); var siflPageName=siflSlicedPageName[0]; siflSlicedPageName=null; if (siflPageNamespace=="백괴게임" || siflPageNamespace=="백괴게임토론") { var siflChilds=document.getElementById("p-logo").childNodes; for (var siflLoopIndex=0;siflLoopIndex<siflChilds.length;siflLoopIndex++) { if (siflChilds[siflLoopIndex].tagName=="a" || siflChilds[siflLoopIndex].tagName=="A") { if (siflIsUngameMain==false) siflChilds[siflLoopIndex].href="/wiki/백괴게임:"+siflPageName; else siflChilds[siflLoopIndex].href="/wiki/백괴게임:대문"; break; } } } else if (siflPageNamespace=="백괴뉴스" || siflPageNamespace=="백괴뉴스토론" || siflPageNamespace=="백괴낱말사전" || siflPageNamespace=="백괴낱말사전토론" || siflPageNamespace=="백괴식당" || siflPageNamespace=="백괴식당토론" || siflPageNamespace=="해설" || siflPageNamespace=="해설토론") { var siflChilds=document.getElementById("p-logo").childNodes; for (var siflLoopIndex=0;siflLoopIndex<siflChilds.length;siflLoopIndex++) { if (siflChilds[siflLoopIndex].tagName=="a" || siflChilds[siflLoopIndex].tagName=="A") { siflChilds[siflLoopIndex].href="/wiki/"+siflPageNamespace.replace(/토론/,"")+":대문"; break; } } } } addOnloadHook(runLogoLinkChanger); /** 현재 문서의 네임스페이스를 가져오는 함수. * 작성자: [[사용자:Cyrus H.]] */ function getNamespace() { if (wgPageName.indexOf(":")==-1) return false; var siflSlicedPageName=wgPageName.split(":"); return siflSlicedPageName[0]; } /** 현재 문서의 일반화된 이름을 가져오는 함수. * 작성자: [[사용자:Cyrus H.]] */ function getPageName() { if(wgPageName.indexOf(":")==-1) { return wgPageName; } else { var siflSlicedPageName=wgPageName.split(":"); return siflSlicedPageName[1]; } } /** 일반 문서에 해설 탭을, 해설 문서에 일반 문서 탭을 추가하는 함수. * 작성자: [[사용자:Cyrus H.]] */ function doHaeseolseoThings() { var siflPageNs=getNamespace(); if (siflPageNs==false) { addPortletLink('p-cactions',"/wiki/해설:"+wgPageName,"해설","ca-go-to-haeseolseo","이 문서의 해설을 봅니다.","1",document.getElementById("ca-talk").nextSibling); checkDocumentExistency("해설:"+wgTitle,"ca-go-to-haeseolseo"); } else if (siflPageNs=="해설") { addPortletLink('p-cactions',"/wiki/"+getPageName(),"문서","ca-return-to-document","백괴사전에 있는 문서를 봅니다.","1",document.getElementById("ca-nstab-.ED.95.B4.EC.84.A4").previousSibling); addPortletLink('p-cactions',"/wiki/토론:"+getPageName(),"토론","ca-return-to-document-talk","백괴사전에 있는 토론 문서를 봅니다.","1",document.getElementById("ca-nstab-.ED.95.B4.EC.84.A4").previousSibling); checkDocumentExistency(wgTitle,"ca-return-to-document"); checkDocumentExistency("토론:"+wgTitle,"ca-return-to-document-talk"); } else if (siflPageNs=="토론") { addPortletLink('p-cactions',"/wiki/해설:"+getPageName(),"해설","ca-go-to-haeseolseo","이 문서의 해설을 봅니다.","1",document.getElementById("ca-talk").nextSibling); checkDocumentExistency("해설:"+wgTitle,"ca-go-to-haeseolseo"); } } addOnloadHook(doHaeseolseoThings); /** 문서가 존재하는지 존재하지 않는지 판단하여 탭 색을 바꾸는 함수. * 작성자: [[사용자:Cyrus H.]] */ function checkDocumentExistency(documentTitle,tabId) { dojo.xhrGet({ url:'/w/api.php', content:{ 'action':'query', 'format':'xml', 'titles':documentTitle }, timeout:5000, handleAs:'xml', load:function(response,ioArgs) { var pageNode=response.documentElement.childNodes[0].childNodes[0].firstChild.attributes; for(var looper=0;looper<pageNode.length;looper++) { if(pageNode[looper].nodeName=="missing") { dojo.query("#"+tabId).addClass("new"); break; } } } }); return true; } /* * @author [[User:Devunt]] */ addOnloadHook(function() { if (wgPageName!="백괴사전:낙서장") return; if (document.URL.lastIndexOf("action=edit") != -1) { if (document.URL.lastIndexOf("fakeaction=clean") == -1) return; var dbindex = document.editform.wpTextbox1; dbindex.value = "{{이 줄은 지우지 마세요 (낙서장 안내문)}}"; document.editform.wpSummary.value = "낙서장 비움"; document.editform.wpSave.click(); return; } }); /*</nowiki></source>*/
이 문서에서 사용한 틀:
리버티게임:연습장/안내문
(
원본 보기
)
미디어위키:Common.js
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
계정 만들기
로그인
어두운 모드
이름공간
메시지
토론
English
보기
읽기
원본 보기
역사 보기
더 보기
새로 고침
검색
둘러보기
대문
최근 바뀜
게임 목록
임의의 게임으로
커뮤니티
리버티게임 본진
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보
축약된 URL 얻기