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

(오옹)
편집 요약 없음
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("사용자");
window.location.href =  window.location.href + '?action=render';
};
};


doc.querySelector('.dropdown-item[title="사용자 환경 설정"]').before(lightWikiOn);
/*var links = document.getElementsByTagName('a');
var linksSize = links.length;
for (var i = 0; i < linksSize; i++) {
  var l_link = links[i];
 
  if (l_link.href.includes('action=render') === true || l_link.href.includes('action=edit') === true) {
    console.log('render & edit');
  } else {
    l_link.href = l_link.href + '?action=render';
    console.log(l_link.href);
  }
}*/

2021년 9월 22일 (수) 13:15 판

var lightWikiOn = document.createElement('span');
lightWikiOn.className = "dropdown-item";
lightWikiOn.innerText = "라이트 모드";
lightWikiOn.onclick = function() {
	window.location.href =  window.location.href + '?action=render';
};

/*var links = document.getElementsByTagName('a');
var linksSize = links.length;
for (var i = 0; i < linksSize; i++) {
  var l_link = links[i];

  if (l_link.href.includes('action=render') === true || l_link.href.includes('action=edit') === true) {
    console.log('render & edit');
  } else {
    l_link.href = l_link.href + '?action=render';
    console.log(l_link.href);
  }
}*/