weihl_test

open one's eyes to see the world.

目前为 2024-10-17 提交的版本。查看 最新版本

// ==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("需要添加")
            }
            else{
                console.log("无需添加")
            }
        }, 1000);
    
    });
})();