편집 요약 없음 |
편집 요약 없음 |
||
1번째 줄: | 1번째 줄: | ||
var doc = document; | |||
var main = function(page) { | |||
var api_params = { | |||
action: 'parse', | |||
format: 'json', | |||
prop: ['text', 'categorieshtml'], | |||
disablelimitreport: 1, | |||
disablestylededuplication: 1, | |||
utf8: 1, | |||
formatversion: 'latest', | |||
redirects: 1 | |||
}; | |||
api_params.page = page; | |||
var api = new mw.Api(); | |||
api.get(api_params).done(data => { | |||
var text = data.parse.text; //json에서 데이터 추출. | |||
var content = text.replaceAll('\n', '').replaceAll('\\', "").replaceAll('href="', 'data-href="'); //이스케이프 문자, 링크 제거 | |||
doc.querySelector('html').innerHTML = content; //내용 갈아치우기 | |||
doc.getElementsByClassName('mw-parser-output')[0].id = "mw-content-text"; // 오류 무시 | |||
var links = doc.querySelectorAll('a:not(.external):not(.new)'); //외부링크 구현 문제, 내부 링크 선택 | |||
var linksSize = links.length; //오브젝트? 크기 구하기 | |||
var docTitle; //var docTitle == var page | |||
var isinternalLink = true; | |||
// var toLink = function() {}; | |||
var toLink = function(link) { | |||
var href = link.target.dataset.href; | |||
if (href.includes('index.php') === true) { | |||
console.log(href); | |||
window.open(href); | |||
} else { | |||
console.log(docTitle); | |||
docTitle = decodeURI(href.split("/").pop()); | |||
main(docTitle); //본 함수 반복 | |||
isinternalLink = false; | |||
} | |||
}; //내부 링크 | |||
//var getLink = function(link) { | |||
// docTitle = decodeURI(link.target.dataset.href.split("/").pop()); | |||
//}; //편집 버튼, 문단 링크 | |||
for (var i = 0; i < linksSize; i++) { | |||
var l_link = links[i]; | |||
l_link.style.cssText = "color: blue; cursor: pointer;"; | |||
//l_link.onmouseover = getTitle; | |||
l_link.onclick = toLink; | |||
} | |||
}); | |||
}; | |||
var lightWikiOn = document.createElement('span'); | var lightWikiOn = document.createElement('span'); | ||
lightWikiOn.className = "dropdown-item"; | lightWikiOn.className = "dropdown-item"; | ||
lightWikiOn.innerText = "라이트 모드"; | lightWikiOn.innerText = "라이트 모드"; | ||
lightWikiOn.onclick = function() { | lightWikiOn.onclick = function() { | ||
main("사용자"); | |||
}; | }; | ||
doc.querySelector('.dropdown-item[title="사용자 환경 설정"]').before(lightWikiOn); | |||
2021년 9월 22일 (수) 14:17 판
var doc = document;
var main = function(page) {
var api_params = {
action: 'parse',
format: 'json',
prop: ['text', 'categorieshtml'],
disablelimitreport: 1,
disablestylededuplication: 1,
utf8: 1,
formatversion: 'latest',
redirects: 1
};
api_params.page = page;
var api = new mw.Api();
api.get(api_params).done(data => {
var text = data.parse.text; //json에서 데이터 추출.
var content = text.replaceAll('\n', '').replaceAll('\\', "").replaceAll('href="', 'data-href="'); //이스케이프 문자, 링크 제거
doc.querySelector('html').innerHTML = content; //내용 갈아치우기
doc.getElementsByClassName('mw-parser-output')[0].id = "mw-content-text"; // 오류 무시
var links = doc.querySelectorAll('a:not(.external):not(.new)'); //외부링크 구현 문제, 내부 링크 선택
var linksSize = links.length; //오브젝트? 크기 구하기
var docTitle; //var docTitle == var page
var isinternalLink = true;
// var toLink = function() {};
var toLink = function(link) {
var href = link.target.dataset.href;
if (href.includes('index.php') === true) {
console.log(href);
window.open(href);
} else {
console.log(docTitle);
docTitle = decodeURI(href.split("/").pop());
main(docTitle); //본 함수 반복
isinternalLink = false;
}
}; //내부 링크
//var getLink = function(link) {
// docTitle = decodeURI(link.target.dataset.href.split("/").pop());
//}; //편집 버튼, 문단 링크
for (var i = 0; i < linksSize; i++) {
var l_link = links[i];
l_link.style.cssText = "color: blue; cursor: pointer;";
//l_link.onmouseover = getTitle;
l_link.onclick = toLink;
}
});
};
var lightWikiOn = document.createElement('span');
lightWikiOn.className = "dropdown-item";
lightWikiOn.innerText = "라이트 모드";
lightWikiOn.onclick = function() {
main("사용자");
};
doc.querySelector('.dropdown-item[title="사용자 환경 설정"]').before(lightWikiOn);