사용자:하늘/light.js: 두 판 사이의 차이

편집 요약 없음
(문서를 비움)
태그: 비우기 수동 되돌리기
 
(사용자 2명의 중간 판 41개는 보이지 않습니다)
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 toLink = function () {
            main(docTitle); //본 함수 반복
        };
        var getTitle = function (link) {
            docTitle = decodeURI(link.target.dataset.href.split("/").pop());
        }; //내부 링크
        //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);

2024년 2월 6일 (화) 22:18 기준 최신판