|
|
(같은 사용자의 중간 판 2개는 보이지 않습니다) |
1번째 줄: |
1번째 줄: |
| /**
| |
| * 문서 메뉴에 버튼을 추가하는 기능을 추가합니다.
| |
| * @date 2023. 12. 31. - 오전 12:12:53
| |
| *
| |
| * @param {HTMLElement} htmlObject
| |
| */
| |
| function addArticleMenuItem(htmlObject) {
| |
|
| |
|
| this.menuitem = htmlObject;
| |
|
| |
| this.AddItem = function (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;
| |
| }
| |
| };
| |
|
| |
| this.SetMenuItem = function (htmlObject) { this.menuitem = htmlObject; };
| |
| }
| |
|
| |
| var skinContentTool = {
| |
| ['liberty']: ".content-tools .dropdown-item:last-child",
| |
| ['timeless']: ".mw-portlet-body #ca-move.mw-list-item"
| |
| }
| |
|
| |
| window.extendedDropdownItemArray =
| |
| window.extendedDropdownItemArray || new addArticleMenuItem(skinContentTool[mw.config.get('skin')]);
| |