Greasy Fork

Greasy Fork is available in English.

weihl_test

open one's eyes to see the world.

当前为 2024-10-17 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         weihl_test
// @namespace    http://tampermonkey.net/
// @version      V0.1
// @description  open one's eyes to see the world.
// @author       weihule
// @match        https://pmos.sd.sgcc.com.cn:18080/trade/main/index.do*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant        none
// @license      AGPL-3.0
// ==/UserScript==

(function() {
    'use strict';

    function doMYExport() {
        let iframe = document.getElementsByClassName('container-fluid')[2].querySelector('iframe');
        console.log('进入 iframe 时未报错')

        let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
        console.log('这里也没报错')

        setTimeout(function() {
            let dialog_header = iframeDocument.getElementsByClassName('modal-dialog modal-lg')[1].getElementsByClassName('modal-content')[0].getElementsByClassName('modal-header')[0];
            dialog_header.getElementsByClassName('close')[0].click();
        }, 3000);

        // 定位数据表单控件
        iframeDocument.getElementsByClassName('dataTables_scroll')[0]
        const table = iframeDocument.querySelector('.dataTables_scrollBody table');
        let headers = [];
        const headerCells = table.querySelectorAll('thead th');
        headerCells.forEach(cell => {
            headers.push(cell.textContent.trim());
        });
        const data = [];
        const rows = table.querySelectorAll('tbody tr');
        rows.forEach(row => {
            const rowData = [];
            const cells = row.querySelectorAll('td');
            cells.forEach(cell => {
                rowData.push(cell.textContent.trim());
            });
            data.push(rowData);
        });

        console.log('表头:', headers);
        console.log('数据:', data);
    }

    function addButton() {
        let iframe = document.getElementsByClassName('container-fluid')[2].querySelector('iframe');
        if (!iframe) return;

        let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
        if (!iframeDocument) return;

        let targetParentDiv = iframeDocument.getElementsByClassName('paper-top');
        let secondChildDiv = iframeDocument.getElementsByClassName('fbutton paperBut');

        if (!targetParentDiv.length ||!secondChildDiv.length) return;

        // 创建新的 div
        let newDiv = iframeDocument.createElement('div');
        newDiv.className = 'customDiv';
        newDiv.style.marginTop = '5px';
        // newDiv.style.width = '90px';

        const button = iframeDocument.createElement('button');
        button.type = 'button';
        button.className = 'btn btn-primary hover';
        button.textContent = '导出-MY';

        // 添加点击事件监听器
        button.addEventListener('click', doMYExport);

        // 将按钮添加到新创建的 div 中
        newDiv.appendChild(button);

        targetParentDiv[0].insertBefore(newDiv, secondChildDiv[0]);
    }

    window.addEventListener('load', function() {
        addButton();

        setInterval(() => {
            let iframe = document.getElementsByClassName('container-fluid')[2].querySelector('iframe');
            if (!iframe) return;
    
            let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
            if (!iframeDocument) return;
    
            let targetElement = iframeDocument.getElementsByClassName('customDiv');
            if (targetElement.length === 0){
                console.log("需要添加")
                addButton()
            }
            else{
                console.log("无需添加")
            }
        }, 1000);
    
    });
})();