"미디어위키:Common.js"의 두 판 사이의 차이
(같은 사용자의 중간 판 142개는 보이지 않습니다) | |||
13번째 줄: | 13번째 줄: | ||
*/ | */ | ||
//TOKEN | |||
// $.ajax({ | |||
// type: "POST", | |||
// url: mw.util.wikiScript('api'), | |||
// data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'}, | |||
// dataType: 'json', | |||
// async: false, | |||
// success: function( result ){ | |||
// var token = result.query.tokens.csrftoken; | |||
// console.log(token); | |||
// } | |||
// }); | |||
//동일 유형 동시 조회 | |||
var categories = document.querySelector(".menu-list"); | var categories = document.querySelector(".menu-list"); | ||
if(categories != null) { | if(categories != null) { | ||
var listTable = document.createElement( 'table' ); | var listTable = document.createElement( 'table' ); | ||
// TITLE | |||
var tr = document.createElement( 'tr' ); | |||
var th1 = document.createElement( 'th' ); | |||
th1.innerText = '문서 제목'; | |||
tr.appendChild( th1 ); | |||
var th2 = document.createElement( 'th' ); | |||
th2.innerText = '발송사'; | |||
tr.appendChild( th2 ); | |||
var th3 = document.createElement( 'th' ); | |||
th3.innerText = '수신일'; | |||
tr.appendChild( th3 ); | |||
var th4 = document.createElement( 'th' ); | |||
th4.innerText = '비고'; | |||
tr.appendChild( th4 ); | |||
listTable.appendChild( tr ); | |||
//TOKEN | |||
// var token; | |||
// | |||
// $.ajax({ | |||
// type: "POST", | |||
// url: mw.util.wikiScript('api'), | |||
// data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'}, | |||
// dataType: 'json', | |||
// async: false, | |||
// success: function( result ){ | |||
// token = result.query.tokens.csrftoken; | |||
// } | |||
// }); | |||
// CONTENT | |||
for(var i = 0; i < categories.childNodes.length; i++) { | for(var i = 0; i < categories.childNodes.length; i++) { | ||
var row = document.createElement( 'tr' ); | var row = document.createElement( 'tr' ); | ||
var | |||
var column1 = document.createElement( 'td' ); | |||
row.appendChild( | var link = document.createElement( 'a' ); | ||
link.setAttribute('href', categories.childNodes[i].childNodes[0].getAttribute('href')); | |||
link.innerText = categories.childNodes[i].innerText; | |||
link.setAttribute('style', 'color: #0645AD; font-weight: bold;'); | |||
column1.appendChild( link ); | |||
row.appendChild( column1 ); | |||
//data: {action: 'query', format: 'json', prop: 'description', titles: link.innerText}, | |||
//data: {action: 'import', interwikisource: 'meta', interwikipage: link.innerText, token: token, format: 'json'}, | |||
//data: {action: 'query', format: 'json', generator: 'search', gsrsearch: link.innerText, prop: 'iwlinks'}, | |||
// SEARCH END SECTION NUMBER | |||
var endNum; | |||
$.ajax({ | |||
type: "POST", | |||
url: mw.util.wikiScript('api'), | |||
data: {action: 'parse', format: 'json', page: link.innerText}, | |||
dataType: 'json', | |||
async: false, | |||
success: function ( result ){ | |||
endNum = result.parse.sections.length; | |||
} | |||
}); | |||
// SEARCH INFO OF SECTION | |||
var text, textArr; | |||
var text1 = text2 = text4 = ''; | |||
$.ajax({ | |||
type: "POST", | |||
url: mw.util.wikiScript('api'), | |||
data: {action: 'parse', format: 'json', page: link.innerText, prop: 'wikitext', section: endNum}, | |||
dataType: 'json', | |||
async: false, | |||
success: function ( result ){ | |||
textObj = result.parse.wikitext; | |||
text = JSON.stringify(textObj); | |||
textArr = text.split('|}}'); | |||
} | |||
}); | |||
for(var j = 0; j < textArr.length; j++) { | |||
var indexNum = textArr[j].lastIndexOf('|') + 1; | |||
var temp = textArr[j].substr(indexNum); | |||
//console.log(temp); | |||
switch(j) { | |||
case 1: | |||
text1 = temp; | |||
break; | |||
case 2: | |||
text2 = temp; | |||
break; | |||
case 4: | |||
text4 = temp; | |||
break; | |||
} | |||
} | |||
//console.log("-------"); | |||
var column2 = document.createElement( 'td' ); | |||
column2.innerText = text1; | |||
row.appendChild( column2 ); | |||
var column3 = document.createElement( 'td' ); | |||
column3.innerText = text2; | |||
row.appendChild( column3 ); | |||
var column4 = document.createElement( 'td' ); | |||
column4.innerText = text4; | |||
row.appendChild( column4 ); | |||
listTable.appendChild( row ); | listTable.appendChild( row ); | ||
} | } | ||
categories. | listTable.setAttribute('class', 'menu-list-table'); | ||
categories.parentNode.insertBefore( listTable, categories.nextSibling ); | |||
categories.setAttribute('style', 'display:none;'); | |||
} | } | ||
//검색박스 한글 자동완성 | |||
'use strict'; | |||
var $input = $('#searchInput'); | |||
var $input = $('input[name=search]'); | |||
$input.keyup(function (e) { | |||
switch (e.key) { | |||
case 'ArrowUp': | |||
case 'ArrowRight': | |||
case 'ArrowDown': | |||
case 'ArrowLeft': | |||
return; | |||
} | |||
$input.trigger('keypress'); | |||
}); | |||
//신규 문서 일반 편집 고정 이동 ==> 신규 문서 테스트 폼으로 작성(폼 변경 시 '신규문서_작성'을 해당 폼 명으로 변경 ; 2022-12-02) | |||
var $new = $('.searchresults').find('.new'); | |||
var $href = $new.attr('href'); | |||
var hrefArr = $href.split('title='); | |||
var hrefTitle = hrefArr[1].split('&')[0]; | |||
var newTitle = '특수:데이터편집/신규문서_작성/' + hrefTitle; | |||
var newHref = hrefArr[0] + 'title=' + newTitle; | |||
$new.attr('href', newHref); | |||
//문구 변경 | |||
var exHtml = $('.searchresults').find('strong').html(); | |||
var exHtmlArr = exHtml.split('"'); | |||
var startText = exHtmlArr[0]; | |||
var endText = exHtmlArr[exHtmlArr.length-1]; | |||
var midText = exHtml.split(startText)[1].split(endText)[0]; | |||
var newText = midText + ' 를 클릭해 신규 문서를 작성하세요.'; | |||
$('.searchresults').find('strong').html(newText); |
2022년 12월 2일 (금) 14:01 기준 최신판
/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */ /* var sections = document.querySelectorAll(".veaction-section"); if(sections != null){ if(sections.length > 0){ for(var i = 0; i < sections.length; i++){ sections[i].children[0].setAttribute('href',sections[i].children[0].getAttribute('href') + (i+1)); } } } */ //TOKEN // $.ajax({ // type: "POST", // url: mw.util.wikiScript('api'), // data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'}, // dataType: 'json', // async: false, // success: function( result ){ // var token = result.query.tokens.csrftoken; // console.log(token); // } // }); //동일 유형 동시 조회 var categories = document.querySelector(".menu-list"); if(categories != null) { var listTable = document.createElement( 'table' ); // TITLE var tr = document.createElement( 'tr' ); var th1 = document.createElement( 'th' ); th1.innerText = '문서 제목'; tr.appendChild( th1 ); var th2 = document.createElement( 'th' ); th2.innerText = '발송사'; tr.appendChild( th2 ); var th3 = document.createElement( 'th' ); th3.innerText = '수신일'; tr.appendChild( th3 ); var th4 = document.createElement( 'th' ); th4.innerText = '비고'; tr.appendChild( th4 ); listTable.appendChild( tr ); //TOKEN // var token; // // $.ajax({ // type: "POST", // url: mw.util.wikiScript('api'), // data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'}, // dataType: 'json', // async: false, // success: function( result ){ // token = result.query.tokens.csrftoken; // } // }); // CONTENT for(var i = 0; i < categories.childNodes.length; i++) { var row = document.createElement( 'tr' ); var column1 = document.createElement( 'td' ); var link = document.createElement( 'a' ); link.setAttribute('href', categories.childNodes[i].childNodes[0].getAttribute('href')); link.innerText = categories.childNodes[i].innerText; link.setAttribute('style', 'color: #0645AD; font-weight: bold;'); column1.appendChild( link ); row.appendChild( column1 ); //data: {action: 'query', format: 'json', prop: 'description', titles: link.innerText}, //data: {action: 'import', interwikisource: 'meta', interwikipage: link.innerText, token: token, format: 'json'}, //data: {action: 'query', format: 'json', generator: 'search', gsrsearch: link.innerText, prop: 'iwlinks'}, // SEARCH END SECTION NUMBER var endNum; $.ajax({ type: "POST", url: mw.util.wikiScript('api'), data: {action: 'parse', format: 'json', page: link.innerText}, dataType: 'json', async: false, success: function ( result ){ endNum = result.parse.sections.length; } }); // SEARCH INFO OF SECTION var text, textArr; var text1 = text2 = text4 = ''; $.ajax({ type: "POST", url: mw.util.wikiScript('api'), data: {action: 'parse', format: 'json', page: link.innerText, prop: 'wikitext', section: endNum}, dataType: 'json', async: false, success: function ( result ){ textObj = result.parse.wikitext; text = JSON.stringify(textObj); textArr = text.split('|}}'); } }); for(var j = 0; j < textArr.length; j++) { var indexNum = textArr[j].lastIndexOf('|') + 1; var temp = textArr[j].substr(indexNum); //console.log(temp); switch(j) { case 1: text1 = temp; break; case 2: text2 = temp; break; case 4: text4 = temp; break; } } //console.log("-------"); var column2 = document.createElement( 'td' ); column2.innerText = text1; row.appendChild( column2 ); var column3 = document.createElement( 'td' ); column3.innerText = text2; row.appendChild( column3 ); var column4 = document.createElement( 'td' ); column4.innerText = text4; row.appendChild( column4 ); listTable.appendChild( row ); } listTable.setAttribute('class', 'menu-list-table'); categories.parentNode.insertBefore( listTable, categories.nextSibling ); categories.setAttribute('style', 'display:none;'); } //검색박스 한글 자동완성 'use strict'; var $input = $('#searchInput'); var $input = $('input[name=search]'); $input.keyup(function (e) { switch (e.key) { case 'ArrowUp': case 'ArrowRight': case 'ArrowDown': case 'ArrowLeft': return; } $input.trigger('keypress'); }); //신규 문서 일반 편집 고정 이동 ==> 신규 문서 테스트 폼으로 작성(폼 변경 시 '신규문서_작성'을 해당 폼 명으로 변경 ; 2022-12-02) var $new = $('.searchresults').find('.new'); var $href = $new.attr('href'); var hrefArr = $href.split('title='); var hrefTitle = hrefArr[1].split('&')[0]; var newTitle = '특수:데이터편집/신규문서_작성/' + hrefTitle; var newHref = hrefArr[0] + 'title=' + newTitle; $new.attr('href', newHref); //문구 변경 var exHtml = $('.searchresults').find('strong').html(); var exHtmlArr = exHtml.split('"'); var startText = exHtmlArr[0]; var endText = exHtmlArr[exHtmlArr.length-1]; var midText = exHtml.split(startText)[1].split(endText)[0]; var newText = midText + ' 를 클릭해 신규 문서를 작성하세요.'; $('.searchresults').find('strong').html(newText);