超星学习通-自动点击讨论并自动回复脚本
// ==UserScript==
// @name 超星学习通-自动点击讨论并自动回复脚本
// @namespace http://tampermonkey.net/
// @version 1.1
// @description 自动点击讨论部分,自动填入并提交回复内容,提交后自动关闭页面
// @author 河北糖纸大鹏
// @match *://*.chaoxing.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 定义一个函数,用来查找讨论部分并点击
function clickDiscussion() {
const topicMainDiv = document.getElementById('topicMainDiv');
if (topicMainDiv) {
// 阻止默认跳转行为
topicMainDiv.addEventListener('click', function(event) {
event.preventDefault();
console.log('阻止了页面跳转');
}, { once: true }); // 使用 { once: true } 确保事件只触发一次
// 模拟点击,确保触发事件,但不会跳转
const event = new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window,
});
topicMainDiv.dispatchEvent(event); // 模拟点击
console.log('已自动点击讨论部分');
}
}
// 等待页面加载完成
window.onload = function() {
// 自动点击讨论部分(延迟1秒)
setTimeout(clickDiscussion, 1000);
// 查找所有 replyContent 元素
const replyContents = document.querySelectorAll('.replyContent');
if (replyContents.length === 0) {
console.log('未找到 replyContent');
return;
}
// 随机选择一个 replyContent 的内容
const randomReply = replyContents[Math.floor(Math.random() * replyContents.length)].innerText;
// 找到目标文本框
const textarea = document.querySelector('.textareawrap textarea');
if (textarea) {
// 将随机回复内容填入文本框
textarea.value = randomReply;
// 手动触发输入事件,确保页面响应
const inputEvent = new Event('input', { bubbles: true });
textarea.dispatchEvent(inputEvent);
console.log('已自动填入内容:', randomReply);
// 检查文本框是否为空
if (textarea.value.trim() === '') {
console.log('文本框为空,已中断执行');
return; // 中断执行
}
// 查找并点击提交按钮
const submitButton = document.querySelector('.jb_btn.addReply');
if (submitButton) {
setTimeout(() => {
submitButton.click();
console.log('已自动提交评论');
// 提交后等待0.5秒钟再自动关闭页面
setTimeout(() => {
window.close(); // 关闭当前页面
console.log('已自动关闭页面');
}, 500); // 延迟0.5秒关闭页面
}, 3000); // 延迟3秒,确保填入完成后再提交
} else {
console.log('未找到提交按钮');
}
} else {
console.log('未找到文本框');
}
};
})();