사용자:LiteHell2/breadcumb.js: 두 판 사이의 차이

편집 요약 없음
편집 요약 없음
 
(같은 사용자의 중간 판 5개는 보이지 않습니다)
15번째 줄: 15번째 줄:
         function setStorage(value) {
         function setStorage(value) {
             initStorageIfRequired();
             initStorageIfRequired();
             localStorage.setItem(itemName, JSON.stringify(value));
             localStorage.setItem(itemName, JSON.stringify(value.slice(-20)));
         }
         }


23번째 줄: 23번째 줄:
         }
         }


         function makeBreadBar(arr_p, active) {
         function makeBreadBar(arr, active) {
            var arr = arr_p.slice(-15);
             var ol = document.createElement("ol");
             var ol = document.createElement("ol");
             ol.className = "breadcrumb";
             ol.className = "breadcrumb";
             ol.innerHTML = '<li id="clenBreads"><a href="javascript:(function(){})();" style="color: red;">빵가루 청소</a></li>';
             ol.innerHTML = '<li id="cleanBreads"><a href="javascript:(function(){})();" style="color: red;"><span class="glyphicon glyphicon-trash"></span></a></li>';
             ol.querySelector('li#cleanBreads > a').addEventListener("click", function() {
             ol.querySelector('li#cleanBreads > a').addEventListener("click", function() {
                 if (confirm("진짜로 빵가루를 전부다 청소할까요?")) localStorage.setItem(itemName, "[]");
                 if (confirm("진짜로 빵가루를 전부다 청소할까요?")) {
                    localStorage.setItem(itemName, "[]");
                    alert('강제 새로고침하면 지워져 있을겁니다. :)');
                }
             });
             });
             for (var i = 0; i < arr.length; i++) {
             for (var i = 0; i < arr.length; i++) {
50번째 줄: 52번째 줄:


         var articles = getStorage();
         var articles = getStorage();
         articles.push(conf.wgPageName);
         if(articles.length == 0 || (articles.length != 0 && articles[articles.length - 1] != conf.wgPageName)) articles.push(conf.wgPageName);
         setStorage(articles, conf.wgPageName);
         setStorage(articles, conf.wgPageName);
         var breadbar = makeBreadBar(articles, conf.wgPageName);
         var breadbar = makeBreadBar(articles, conf.wgPageName);

2015년 11월 5일 (목) 20:10 기준 최신판

/*
 * written By. LiteHell
 * Warning : This script uses localStorage of your browser so BREADCUMB WILL BE DELETED IF YOU CLEAR STORAGE DATA FROM YOUR BROWSER.
 */
if (mw.config.exists("wgIsArticle") && mw.config.exists("wgPageName") && mw.config.exists("wgArticlePath")) {
    var conf = mw.config.get(["wgIsArticle", "wgPageName", "wgArticlePath"]);
    if (conf.wgIsArticle) {
        var itemName = "pageBreadcumbs";

        function initStorageIfRequired() {
            if (localStorage.getItem(itemName) == null)
                localStorage.setItem(itemName, "[]");
        }

        function setStorage(value) {
            initStorageIfRequired();
            localStorage.setItem(itemName, JSON.stringify(value.slice(-20)));
        }

        function getStorage() {
            initStorageIfRequired();
            return JSON.parse(localStorage.getItem(itemName));
        }

        function makeBreadBar(arr, active) {
            var ol = document.createElement("ol");
            ol.className = "breadcrumb";
            ol.innerHTML = '<li id="cleanBreads"><a href="javascript:(function(){})();" style="color: red;"><span class="glyphicon glyphicon-trash"></span></a></li>';
            ol.querySelector('li#cleanBreads > a').addEventListener("click", function() {
                if (confirm("진짜로 빵가루를 전부다 청소할까요?")) {
                    localStorage.setItem(itemName, "[]");
                    alert('강제 새로고침하면 지워져 있을겁니다. :)');
                }
            });
            for (var i = 0; i < arr.length; i++) {
                var now = arr[i];
                var li = document.createElement("li");
                if (now == active) {
                    li.className = "active";
                    li.textContent = now;
                } else {
                    var anchor = document.createElement("a");
                    anchor.href = conf.wgArticlePath.replace('$1', now);
                    anchor.title = now;
                    anchor.textContent = now;
                    li.appendChild(anchor);
                }
                ol.appendChild(li);
            }
            return ol;
        }

        var articles = getStorage();
        if(articles.length == 0 || (articles.length != 0 && articles[articles.length - 1] != conf.wgPageName)) articles.push(conf.wgPageName);
        setStorage(articles, conf.wgPageName);
        var breadbar = makeBreadBar(articles, conf.wgPageName);
        var contentButtons = document.querySelector(".libre_content_tools");
        contentButtons.parentNode.insertBefore(breadbar, contentButtons);
    }
}