// ==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 // @downloadURL none // ==/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); }); })();