미디어위키:Gadget-defaultTemplate.js: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
(copybox 편입)
잔글편집 요약 없음
103번째 줄: 103번째 줄:


/* [[틀:복붙 상자]]용 함수 끝 */
/* [[틀:복붙 상자]]용 함수 끝 */
/** [[틀:편집불가]] 재 리뉴얼용 함수
* [[틀:편집불가]]의 브라우저 및 모니터 차별, 3대 원칙 위반 가능 요소 포함 등으로 리뉴얼을 했으나, 리뉴얼한 틀을 소화 못하는 게임이 많아보이는 관계로 재 리뉴얼 합니다.
* 작성자: [[사용자:Manymaster|manymaster]]
*/
function editprevent() {
    var caprevent = document.getElementsByClassName("edit-prevent");
    var cahisprevent = document.getElementsByClassName("history-prevent");
    if (caprevent[0] === undefined || caprevent[0] === null) {
    return;
    } else {
        if (cahisprevent[0] === undefined || cahisprevent[0] === null) {
            cahisprevent = document.getElementsByClassName("edit-prevent");
            }
        var caedit = document.getElementById('ca-edit');
        var cahistory = document.getElementById('ca-history');
        var caviewsource = document.getElementById('ca-viewsource');
        if (caedit !== null && caedit !== undefined){
            caedit.innerHTML = caprevent[0].innerHTML;
            cahistory.innerHTML = cahisprevent[0].innerHTML;
        } else {
            caviewsource.innerHTML = caprevent[0].innerHTML;
            cahistory.innerHTML = cahisprevent[0].innerHTML;
        }
    }
    return;
}
$( editprevent );
/* [[틀:편집불가]] 재 리뉴얼용 함수 끝 */

2023년 7월 21일 (금) 10:12 판

/**
 * [[틀:뒤로]], [[틀:새로고침]], [[틀:앞으로]]에서 사용하는 방문기록 이동 함수
 * class="historygo" data-page="(이동 위치)"
 * 작성자: [[사용자:hsl0|hsl0]]
**/

$(function historygo() {
	$('.historygo').wrap('<a />').click(function() {
	    history.go(this.dataset.page);
	});
});

/** [[틀:로고 바꾸기]]용 함수 V 1.1
 * 작성자: [[사용자:Manymaster|manymaster]],
 * 1.1 업데이트: [[사용자:BANIP|BANIP]]
 */
function logochange() {
	// 허용 확장자 및 url 패턴
    var allwedURLPattern = ["i.uncyclopedia.kr/game/","i.uncyclopedia.kr/pedia/","upload.wikimedia.org/wikipedia/commons/"];
	var allowedExt = ["gif","png","jpg","jpeg","svg"];

    var logoElement = document.getElementsByClassName("changelogo123");
	/* .changelogo 요소가 없으면 종료 */
    if (logoElement.length === 0) {
        return;

    }

	var logoTest = logoElement[0].innerHTML.toLowerCase();
	//이미지 url이 주어진 조건에 맞는지 검사
	var isSafeURL = allwedURLPattern.some( function(middleURL){ 
		var reg = new RegExp("//" + middleURL);
		return ( logoTest.match(reg) !== null);
	});
	var isSafeExt = allowedExt.some( function(ext){ 
		var reg = new RegExp("\." + ext + "$");
		return ( logoTest.match(reg) !== null);
	});

	// URL패턴과 확장자의 조건이 맞지 않으면 종료
    if ( !(isSafeURL && isSafeExt) ) {
		return;
    }

    /* 로고 교체 */
    var orglogoElement = document.querySelector("#p-logo a");
    orglogoElement.style.backgroundImage = "url('" + logoElement[0].innerHTML + "')";
    /* 사이즈 교체 */
    var widthElement = document.querySelector(".changelogowidth");
	widthElement.innerHTML = widthElement === null ? "160px" : widthElement.innerHTML;
	var heightElement = document.querySelector(".changelogoheight");
	heightElement.innerHTML = heightElement === null ? "160px" : heightElement.innerHTML;
	orglogoElement.style.backgroundSize = widthElement.innerHTML + " " + heightElement.innerHTML;

}
$(logochange);
/* [[틀:로고 바꾸기]]용 함수 끝 */


/** [[틀:제목 바꾸기]]용 스크립트 */
function rewriteTitle() {
    if (typeof(disableTitleRewrite) != 'undefined' && disableTitleRewrite) return;
    if (!document.getElementById('title-meta')) return;
    $('h1.firstHeading').each(function(i) {
        $(this).html($("#title-meta").html()).css('text-align', $("#title-align").text());
    });
}
$(rewriteTitle);

/** [[틀:복붙 상자]]용 함수
 * [[틀:자동저장|자동저장 시스템]]이 자동 인증 사용자 전용인 관계로 자동저장 시스템을 사용하지 못하거나 안 하는 사용자를 위해 쉽게 내용을 복붙할 수 있도록 도와주는 함수입니다.
 * 작성자: [[사용자:Manymaster|manymaster]]
 */
function cvbox() {

    var i;
    var cvdata = [];
    var box = [];
    var cvbox = [];
    
    /* 틀 사용 여부 확인 */
	for(i = 0;
    document.getElementsByClassName("cvdata")[i] !== undefined && 
	document.getElementsByClassName("box_locator")[i] !== undefined; i++)
	{
    
	/* 복붙 상자에 넣을 내용을 불러오고 문제가 되는 문자열 치환 */
	cvdata.push(document.getElementsByClassName("cvdata")[i].innerHTML);
	cvdata[i] = cvdata[i].replace(/(<([^>]+)>)/ig, "");
	cvdata[i] = cvdata[i].replace(/\n+/gi, "\n");
	
	/* 지정한 위치에 복붙 상자를 만들어 내용 넣기 */
	box.push(document.getElementsByClassName("box_locator")[i]);
	box[i].innerHTML = '<textarea class="ctrlcvbox" onclick="this.focus();this.select()" title="클릭 후 Ctrl+C 등으로 \'복사\'하시면 클립보드에 내용이 저장됩니다." readonly>' + cvdata[i] + '</textarea>';
	
	/* 복붙 상자 크기 조정 */
	cvbox.push(document.getElementsByClassName("ctrlcvbox")[i]);
	cvbox[i].style.height = (2+cvbox[i].scrollHeight)+"px";
	}
	return;    
}
$( cvbox );

/* [[틀:복붙 상자]]용 함수 끝 */

/** [[틀:편집불가]] 재 리뉴얼용 함수
 * [[틀:편집불가]]의 브라우저 및 모니터 차별, 3대 원칙 위반 가능 요소 포함 등으로 리뉴얼을 했으나, 리뉴얼한 틀을 소화 못하는 게임이 많아보이는 관계로 재 리뉴얼 합니다.
 * 작성자: [[사용자:Manymaster|manymaster]]
 */

function editprevent() {
    var caprevent = document.getElementsByClassName("edit-prevent");
    var cahisprevent = document.getElementsByClassName("history-prevent");
    if (caprevent[0] === undefined || caprevent[0] === null) {
    return;
    } else {
        if (cahisprevent[0] === undefined || cahisprevent[0] === null) {
            cahisprevent = document.getElementsByClassName("edit-prevent");
            }
        var caedit = document.getElementById('ca-edit');
        var cahistory = document.getElementById('ca-history');
        var caviewsource = document.getElementById('ca-viewsource');
        if (caedit !== null && caedit !== undefined){
            caedit.innerHTML = caprevent[0].innerHTML;
            cahistory.innerHTML = cahisprevent[0].innerHTML;
        } else {
            caviewsource.innerHTML = caprevent[0].innerHTML;
            cahistory.innerHTML = cahisprevent[0].innerHTML;
        }
    }
    return;
}
$( editprevent );
/* [[틀:편집불가]] 재 리뉴얼용 함수 끝 */