Skip to content

Instantly share code, notes, and snippets.

@Verssae
Last active March 13, 2026 09:07
Show Gist options
  • Select an option

  • Save Verssae/0ed510986e87a8360965daaef3608861 to your computer and use it in GitHub Desktop.

Select an option

Save Verssae/0ed510986e87a8360965daaef3608861 to your computer and use it in GitHub Desktop.
한양대 안전교육 스킵 스크립트
/*
Hanyang Univ. a script for skipping safetyedu courses
http://safetyedu.hanyang.ac.kr/
[교육 영상 스킵]
1. '수강하기' 버튼을 눌러 안전교육 창을 띄운다.
2. 개발자도구(F12 버튼을 눌러)를 열어 'console' 탭에 이동해 아래 스크립트를 붙여넣는다.
3. 6과목에 대해 반복한다.
ref: https://kysgh2.tistory.com/113
*/
var currentPage = nowPageNum;
function goNextPage() {
if (currentPage < totalPageNum) {
opener.PageMove(currentPage);
console.log(`${currentPage} 페이지를 수강완료했습니다.`);
currentPage += 1;
setTimeout(function () {
goNextPage();
}, 100);
} else {
opener.PageMove(currentPage);
console.log('강의 수강이 완료되었습니다!');
setTimeout(function () {
window.close();
}, 200);
}
}
setTimeout(function () {
goNextPage();
}, 100)
/*
[퀴즈 스킵]
1. 6과목을 다 듣고 '평가하기' 버튼을 누른다.
2. 개발자도구(F12 버튼을 눌러)를 열어 'console' 탭에 이동해 아래 스크립트를 붙여넣는다.
*/
SetExamAfeter();
let answers = Array.from({length: questionCountInExam}, (x,i) => document.getElementById("qustionCorrectNo_" + i).value);
SetExamBefore();
for (let i=0; i<questionCountInExam; i++) {
let ls = document.getElementsByName(`qustionAnswerList[${i}].Answer`);
console.log(ls);
ls[answers[i]-1].checked = true;
}
document.getElementById("Exam_btnSave").click();
@minkyungson
Copy link

동영상 전용(2026 ver.)

(function() {
// 1. 확인된 번호 입력
const myNo = '1632055';

const params = new URLSearchParams();
params.append('scheduleMemberProgressNo', myNo);
params.append('currentTime', '2500'); // 40분 분량에 맞춰 2500초로 설정
params.append('isEnd', 'true');       // 수강 완료를 위해 true로 변경
params.append('isMobile', 'false');   // 확인하신 필수값 추가

console.log(`[${myNo}] 번 과목 최종 정밀 요청 중...`);

fetch('/ushm/edu/contentsViewAviProcessCheckSub.do', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
        'X-Requested-With': 'XMLHttpRequest'
    },
    body: params
})
.then(response => {
    console.log('HTTP 상태 코드:', response.status);
    return response.text();
})
.then(data => {
    console.log("서버 응답 결과:", data);
    // 응답에 "success"나 "true"가 포함되어 있는지 확인
    if (data.includes("true") || response.status === 200) {
        console.log("%c ✅ 수강 완료 처리에 성공한 것으로 보입니다!", "color: #2ecc71; font-weight: bold; font-size: 14px;");
        alert("처리가 완료되었습니다. 메인 페이지를 새로고침하세요!");
    }
})
.catch(error => {
    console.error("⚠️ 네트워크 에러:", error);
});

})();

스크립트 입력 후 팝업 닫고 새로고침하면 적용됩니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment