submitExam4Fenbi

粉笔刷题到点交卷,可以在代码前的expectedDuration 设置自定义刷题时间。

  1. // ==UserScript==
  2. // @name submitExam4Fenbi
  3. // @name:zh-CN 粉笔交卷
  4. // @namespace submitExam4Fenbi
  5. // @version 0.1
  6. // @description 粉笔刷题到点交卷,可以在代码前的expectedDuration 设置自定义刷题时间。
  7. // @description:zh-cn 粉笔刷题到点交卷,可以在代码前的expectedDuration 设置自定义刷题时间。
  8. // @author TIME
  9. // @license MIT
  10. // @match *://*.fenbi.com/*
  11. // @grant none
  12. // @run-at document-idle
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. const expectedDuration = '2:00:00';
  19.  
  20. // 定义函数来点击提交按钮
  21. function clickSubmitButton() {
  22. const submitButton = document.querySelector('.submit-exercise');
  23. if (submitButton) {
  24. submitButton.click();
  25. };
  26. const btn_submit = document.querySelector('.btn-submit');
  27. if (btn_submit) {
  28. btn_submit.click();
  29. };
  30. }
  31.  
  32. // 定义函数来将时间字符串转化为秒数
  33. function timeStringToSeconds(timeStr) {
  34. const [hours, minutes, seconds] = timeStr.split(':').map(Number);
  35. return hours * 3600 + minutes * 60 + seconds;
  36. }
  37.  
  38. // 使用setInterval来连续检查时间,直到达到期望的duration
  39. const interval = setInterval(function() {
  40. const timeDiv = document.querySelector('div.time-exercise-text.active');
  41. const examDetail = document.querySelector('.exam-detail');
  42.  
  43. if (timeDiv && examDetail) {
  44. const timeText = timeDiv.textContent.trim();
  45. const questionCount = examDetail.childElementCount;
  46. // 默认15道题15分钟,超出15题2个小时
  47. const duration = questionCount <= 15 ? '0:15:00' : expectedDuration;
  48.  
  49. if (timeStringToSeconds(timeText) > timeStringToSeconds(duration)) {
  50. // 时间达到duration,停止定时器,执行点击操作
  51. clearInterval(interval);
  52. clickSubmitButton();
  53. }
  54. }
  55. }, 1000); // 每秒检查一次
  56. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址