사용자:Wikiwater2020/Req.js

위키백과, 우리 모두의 백과사전.

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다. 구글 크롬, 파이어폭스, 마이크로소프트 엣지, 사파리: ⇧ Shift 키를 누른 채 "새로 고침" 버튼을 클릭하십시오. 더 자세한 정보를 보려면 위키백과:캐시 무시하기 항목을 참고하십시오.

/*
[[미디어위키:Group-sysop.js]]에서 가져옴.
*/

// '위키백과:### 요청' 문서 목차에 {{완료}} 혹은 {{미완료}}된 요청들 취소선 긋기
// by klutzy: //ko.wikipedia.org/w/index.php?title=%EC%82%AC%EC%9A%A9%EC%9E%90:Klutzy/common.js&oldid=6414855
// 파이어폭스 3.5 이상에서 동작합니다. 다른 브라우저의 경우도 최신 브라우저에서만 동작할 가능성이 높습니다.

// by Ykhwong: 크롬, 파이어폭스 등에서 동작 문제가 발생하여 소스 전면 수정합니다. (2017-12-18)

mw.hook('wikipage.content').add(function() {
	var arr_ids = [];
	var toc;

	if (
		mw.config.get('wgNamespaceNumber') !== 4 ||
		mw.config.get('wgAction') !== "view" ||
		! /[\s_]+(요청|신청)(\/|$)/.test(mw.config.get('wgTitle'))
	) {
		return;
	}

	toc = document.getElementById("toc");
	if ( ! ( toc && toc.getElementsByTagName("ul")[0] ) ) {
		return;
	}

	$( '#toc li.toclevel-1' ).each( function ( i, li ) {
		var cnt = 0;
		var checked = false;
		var hrefNode;
		var sibl;
		var txt = '#' + $.escapeSelector($( li )
			.find( 'span.toctext' ).text()
			.replace(/\s+/g, "_"));

		arr_ids.forEach(function (item) {
			if ( item === txt ) {
				cnt++;
			}
		});

		arr_ids.push(txt);
		if ( cnt !== 0 ) {
			cnt++;
			txt = txt + "_" + cnt;
		}

		sibl = $(txt).parent().next();
		if ( sibl.html() === undefined ) {
			return;
		}

		while ( sibl.html() && sibl[0].nodeName.toLowerCase() !== "h2" ) {
			var filename = sibl.find('img').attr("alt");
			switch (filename) {
				case "Yes check.svg":
				case "X mark.svg":
				case "Yellow check.svg":
				case "U2713.svg":
					checked = true;
					break;
			}
			if ( checked ) {
				break;
			}
			sibl = sibl.next();
		}

		if ( !checked ) {
			return;
		}

		hrefNode = toc.getElementsByClassName("toclevel-1")[i]
			.getElementsByTagName("a")[0];
		hrefNode.innerHTML = "<del style='color: gray !important'>" +
			hrefNode.innerHTML + "</del>";
	});
});