|
|
(같은 사용자의 중간 판 29개는 보이지 않습니다) |
1번째 줄: |
1번째 줄: |
| importScript("User:Senior9324/Gadget-ReferenceDrawerDev.js");
| |
| importStylesheet("User:Senior9324/Gadget-ReferenceDrawerDev.css");
| |
|
| |
|
| /*
| |
| * 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") && mw.config.exists("wgNamespaceNumber")) {
| |
| var conf = mw.config.get(["wgIsArticle", "wgPageName", "wgArticlePath", "wgNamespaceNumber"]);
| |
| if (conf.wgIsArticle && (!(conf.wgNamespaceNumber % 2) && conf.wgNamespaceNumber != 2600)) {
| |
| 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);
| |
| }
| |
| }
| |