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

편집 요약 없음
(문서를 비움)
태그: 비우기
 
1번째 줄: 1번째 줄:
/**
* 문서 메뉴에 버튼을 추가하는 기능을 추가합니다.
*
* @class addArticleButtonItem
* @typedef {addArticleButtonItem}
*/
class addArticleButtonItem {


    /**
    * @constructor
    * @param {string} selector
    */
    constructor(selector) {
        this.menuitem = document.querySelector(selector);
    }
    /**
    * Add Button
    *
    * @param {string} buttontitle
    * @param {string} buttonname
    * @param {string|function} callbackOrUrl
    */
    AddItem (buttontitle, buttonname, callbackOrUrl) {
        let newItem = this.menuitem.cloneNode(true);
        this.menuitem.after(newItem);
        if (newItem.nodeName != "A") {
            newItem.innerHTML = "";
            let linkItem = document.createElement('a');
            newItem.append(linkItem);
            newItem = linkItem;
        }
        newItem.innerHTML = buttonname;
        newItem.accessKey = '';
        newItem.style.cursor = 'pointer';
        newItem.title = buttontitle;
       
        try {
            newItem.href = new URL(callbackOrUrl);
        } catch (e) {
            newItem.href = 'javascript:;'; // 'Invalid URL'
            newItem.onclick = callbackOrUrl;
            return;
        }
    };
}
var skinContentTool = {
    ['liberty']: ".content-tools .dropdown-item:last-child",
    ['timeless']: ".mw-portlet-body #ca-move.mw-list-item"
};
window.extendedDropdownItemArray = new addArticleButtonItem(skinContentTool[mw.config.get('skin')]);

2024년 1월 6일 (토) 17:33 기준 최신판