Jump to content
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

미디어위키:Gadget-HamWiki-HomeCards.js

HamWiki
Hamwiki (토론 | 기여)님의 2026년 8월 11일 (화) 01:36 판 (새 문서: (function () { 'use strict'; function loadRandomDocument() { var $box = $('#hamwiki-random-document'); var $button = $('#hamwiki-random-refresh'); if (!$box.length) { return; } $box .addClass('hamwiki-random-loading') .text('문서를 불러오는 중입니다...'); $button.addClass('is-loading'); var api = new mw.Api(); api.get({ action: 'query', list: 'random', // 일반 문서 네임스페이스만 rnnamespace: 0, rnlimit: 1,...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

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

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
(function () {
	'use strict';

	function loadRandomDocument() {
		var $box = $('#hamwiki-random-document');
		var $button = $('#hamwiki-random-refresh');

		if (!$box.length) {
			return;
		}

		$box
			.addClass('hamwiki-random-loading')
			.text('문서를 불러오는 중입니다...');

		$button.addClass('is-loading');

		var api = new mw.Api();

		api.get({
			action: 'query',
			list: 'random',

			// 일반 문서 네임스페이스만
			rnnamespace: 0,

			rnlimit: 1,

			formatversion: 2
		}).done(function (data) {
			if (
				!data ||
				!data.query ||
				!data.query.random ||
				!data.query.random.length
			) {
				throw new Error('랜덤 문서를 찾을 수 없습니다.');
			}

			var page = data.query.random[0];
			var title = page.title;

			var $link = $('<a>')
				.attr('href', mw.util.getUrl(title))
				.addClass('hamwiki-random-title')
				.text(title);

			var $description = $('<div>')
				.addClass('hamwiki-random-description')
				.text('이 문서는 어떠신가요?');

			$box
				.empty()
				.removeClass('hamwiki-random-loading')
				.append($description)
				.append($link);

		}).fail(function () {
			$box
				.removeClass('hamwiki-random-loading')
				.text('추천 문서를 불러오지 못했습니다.');

		}).always(function () {
			$button.removeClass('is-loading');
		});
	}

	$(function () {
		if (!$('#hamwiki-random-document').length) {
			return;
		}

		loadRandomDocument();

		$('#hamwiki-random-refresh').on('click', function (e) {
			e.preventDefault();

			if ($(this).hasClass('is-loading')) {
				return;
			}

			loadRandomDocument();
		});
	});

}());