点击复制(最终幻想XIV || FF14 || 最终幻想14)中文维基的物品名

个人简陋制作 点击复制最终幻想XIV中文维基的物品名 参考点击复制ff14.灰机wiki物品详情的物品名(https://github.com/Elypha/copy_itemname_ff14huijiwiki)

当前为 2021-06-12 提交的版本,查看 最新版本

// ==UserScript==
// @name         点击复制(最终幻想XIV || FF14 || 最终幻想14)中文维基的物品名
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  个人简陋制作 点击复制最终幻想XIV中文维基的物品名 参考点击复制ff14.灰机wiki物品详情的物品名(https://github.com/Elypha/copy_itemname_ff14huijiwiki)
// @author       Atail
// @date         2021-05-18
// @match        ff14.huijiwiki.com/wiki/*
// @grant        none
// ==/UserScript==

'use strict'

const copyIt = (name) => {
    let dom = document.createElement("textarea");
    dom.value = name;
    dom.setAttribute('style', 'display: block;width: 1px;height: 1px;');
    document.body.appendChild(dom);
    dom.select();
    let result = document.execCommand('copy');
    document.body.removeChild(dom);
    window.alert(name + "复制成功");
}

document.onreadystatechange = () => {
    try {
        // 设置按钮CSS
        const extraCss = document.createElement("style")
        extraCss.type = "text/css"
        extraCss.innerHTML=".copy-btn{border: 1px dashed #d9d9d9; border-radius: 2px; color: #FFFFFF; font-size: 14px; line-height: 1.5715; margin-left: 10px; background: #1C1C1C;}";
        document.getElementsByTagName("head")[0].appendChild(extraCss)
    } catch (error) {
        console.log("CSS错误:", error)
    }

    try {
        // 标题面板
        const infobox_item_name_title = document.getElementsByClassName('infobox-item--name-title')[0];
        const copyBtn = document.createElement("button");
        copyBtn.innerHTML = "复制";
        copyBtn.className = "copy-btn";
        copyBtn.addEventListener("click", () => {
            let itemName = infobox_item_name_title.innerText;
            itemName = itemName.substring(0, itemName.length-2);
            copyIt(itemName);
        });
        infobox_item_name_title.appendChild(copyBtn)
    } catch (error) {
        console.log("标题面板错误:", error)
    }

    try {
        // 各语言名称面板
        const img_v_align_baseline = document.getElementsByClassName('img-v-align-baseline')[0].childNodes;
        img_v_align_baseline.forEach((child, index) => {
            const copyBtnMuti = document.createElement("button");
            copyBtnMuti.innerHTML = "复制"
            copyBtnMuti.className = "copy-btn";
            copyBtnMuti.addEventListener("click", () => {
                let itemName = child.innerText;
                itemName = itemName.substring(0, itemName.length-2);
                copyIt(itemName);
            });
            child.appendChild(copyBtnMuti)
        })
    } catch (error) {
        console.log("各语言名称面板错误:", error)
    }

    try {
        // 制作配方面板
        const item_craft_list = document.getElementsByClassName('item-craft-list')[0].childNodes[0].childNodes[1].childNodes;
        item_craft_list.forEach((child, index) => {
            const copyBtnMuti = document.createElement("button");
            copyBtnMuti.innerHTML = "复制"
            copyBtnMuti.className = "copy-btn";
            copyBtnMuti.addEventListener("click", () => {
                let itemName = child.innerText;
                const idx = itemName.indexOf(" ×");
                if(idx != -1){
                    itemName = itemName.substring(0, idx);
                }
                copyIt(itemName);
            });
            child.appendChild(copyBtnMuti)
        })
    } catch (error) {
        console.log("制作配方面板错误:", error)
    }

    try {
        // 兑换获得面板
        const spanlist = document.getElementsByTagName('span')
        let count = 0;
        for (let i = 0; i < spanlist.length; i++) {
            const thisSpan = spanlist[i];
            thisSpan.innerText == "通过兑换获得"? count++ : null;
            if(thisSpan.innerText == "通过兑换获得" && count > 1){
                const wikitable = thisSpan.parentNode.nextSibling;
                const wikiTableTrList = wikitable.childNodes[0].childNodes[0].childNodes;
                const listarray = [].slice.call(wikiTableTrList);
                const trueList = listarray.slice(1, listarray.length);
                for (let j = 0; j < trueList.length; j++) {
                    const tdList = trueList[j].childNodes;
                    for (let k = 0; k < tdList.length-1; k++) {
                        const copyBtnMuti = document.createElement("button");
                        copyBtnMuti.innerHTML = "复制"
                        copyBtnMuti.className = "copy-btn";
                        copyBtnMuti.addEventListener("click", () => {
                            let itemName = tdList[k].childNodes[0].innerText;
                            const idx = itemName.indexOf(" ×");
                            if(idx != -1){
                                itemName = itemName.substring(0, idx);
                            }
                            copyIt(itemName);
                        });
                        tdList[k].childNodes[0].appendChild(copyBtnMuti)
                    }
                }
            }
        }
    } catch (error) {
        console.log("兑换面板错误:", error)
    }

    try {
        // 兑换面板
        const spanlist = document.getElementsByTagName('span')
        let count = 0;
        for (let i = 0; i < spanlist.length; i++) {
            const thisSpan = spanlist[i];
            thisSpan.innerText == "用于兑换"? count++ : null;
            if(thisSpan.innerText == "用于兑换" && count > 1){
                const wikitable = thisSpan.parentNode.nextSibling;
                const wikiTableTrList = wikitable.childNodes[0].childNodes[0].childNodes;
                const listarray = [].slice.call(wikiTableTrList);
                const trueList = listarray.slice(1, listarray.length);
                for (let j = 0; j < trueList.length; j++) {
                    const tdList = trueList[j].childNodes;
                    for (let k = 0; k < tdList.length-1; k++) {
                        const copyBtnMuti = document.createElement("button");
                        copyBtnMuti.innerHTML = "复制"
                        copyBtnMuti.className = "copy-btn";
                        copyBtnMuti.addEventListener("click", () => {
                            let itemName = tdList[k].childNodes[0].innerText;
                            const idx = itemName.indexOf(" ×");
                            if(idx != -1){
                                itemName = itemName.substring(0, idx);
                            }
                            copyIt(itemName);
                        });
                        tdList[k].childNodes[0].appendChild(copyBtnMuti)
                    }
                }
            }
        }
    } catch (error) {
        console.log("兑换面板错误:", error)
    }
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址