weihl_test

open one's eyes to see the world.

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

  1. // ==UserScript==
  2. // @name weihl_test
  3. // @namespace http://tampermonkey.net/
  4. // @version V0.1
  5. // @description open one's eyes to see the world.
  6. // @author weihule
  7. // @match https://pmos.sd.sgcc.com.cn:18080/trade/main/index.do*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=google.com
  9. // @grant none
  10. // @license AGPL-3.0
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. window.addEventListener('load', function() {
  17.  
  18. function doMYExport() {
  19. let iframe = document.getElementsByClassName('container-fluid')[2].querySelector('iframe');
  20. console.log('进入 iframe 时未报错')
  21. let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
  22. console.log('这里也没报错')
  23. setTimeout(function() {
  24. let dialog_header = iframeDocument.getElementsByClassName('modal-dialog modal-lg')[1].getElementsByClassName('modal-content')[0].getElementsByClassName('modal-header')[0];
  25. dialog_header.getElementsByClassName('close')[0].click();
  26. }, 3000);
  27. // 定位数据表单控件
  28. iframeDocument.getElementsByClassName('dataTables_scroll')[0]
  29. const table = iframeDocument.querySelector('.dataTables_scrollBody table');
  30. const headers = [];
  31. const headerCells = table.querySelectorAll('thead th');
  32. headerCells.forEach(cell => {
  33. headers.push(cell.textContent.trim());
  34. });
  35. const data = [];
  36. const rows = table.querySelectorAll('tbody tr');
  37. rows.forEach(row => {
  38. const rowData = [];
  39. const cells = row.querySelectorAll('td');
  40. cells.forEach(cell => {
  41. rowData.push(cell.textContent.trim());
  42. });
  43. data.push(rowData);
  44. });
  45. console.log('表头:', headers);
  46. console.log('数据:', data);
  47. }
  48.  
  49. let iframe = document.getElementsByClassName('container-fluid')[2].querySelector('iframe');
  50. console.log('进入 iframe 时未报错')
  51.  
  52. let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
  53. console.log('这里也没报错')
  54.  
  55. document.getElementsByClassName('nav-item modulemenu')[2].querySelector('a').click()
  56.  
  57. let targetParentDiv = iframeDocument.getElementsByClassName('paper-top');
  58. let secondChildDiv = iframeDocument.getElementsByClassName('fbutton paperBut');
  59.  
  60. // 创建新的 div
  61. let newDiv = iframeDocument.createElement('div');
  62. newDiv.className = 'customDiv';
  63. newDiv.style.marginTop = '5px';
  64. // newDiv.style.width = '90px'
  65.  
  66. const button = iframeDocument.createElement('button');
  67. button.type = 'button';
  68. button.className = 'btn btn-primary hover';
  69. button.textContent = '导出-明阳';
  70. button.setAttribute('onclick', doMYExport());
  71.  
  72. // 将按钮添加到新创建的 div 中
  73. newDiv.appendChild(button);
  74. targetParentDiv[0].insertBefore(newDiv, secondChildDiv[0])
  75. });
  76. })();