사용자:하늘/light.js

< 사용자:하늘
하늘 (토론 | 기여)님의 2021년 9월 21일 (화) 21:03 판

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

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
//저속 인터넷 사용시 위키 이용을 위한 스크립트, 광고를 모두 무시하므로 저속일 때만 사용을 권장.
// 아직 버튼을 만들지 않아 버튼 없이도 작동해버립니다. 스크립트는 디버그 창에서만 실행해주세요.
//
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="') //이스케이프 문자, 링크 제거

        document.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 returnTitle = function () {
            main(docTitle);                                 //본 함수 반복
        }

        for (var i = 0; i < linksSize; i++) {
            var l_link = links[i]
            l_link.style.color = 'blue';
            l_link.onmouseover = function (link){
                var href = link.target.dataset.href
                var title = href.split("/").pop();
                docTitle = decodeURI(title);
            };
            l_link.onclick = returnTitle;
        }
    });
}
main("사용자")