JS 스 크 립 트 는 정시 에 사이트 에 출석/서명 기능 을 실현 합 니 다.
6008 단어 js정시출석 체크서명 하여 돌려주다
click
사건 을 촉발 시 키 면 된다.다음은 회사 에서 카드 를 찍 고 출석 한 사 이 트 를 예 로 들 어 나 쁜 짓 을 한다.본 논문 의 독 자 는 일정한 HTML 과 자 바스 크 립 트 기 초 를 가지 고 있 는 것 이 가장 좋다.우선 출석 체크 를 하려 면 무엇 을 해 야 할 지 상상 해 보 세 요.
0.어떻게 시간 을 정 합 니까?
이 코드 는 핵심 입 니 다.현재 시간 과 설 정 된 시간 에 따라 차 이 를 만들어 타이머 의 값 을 확인 하 는 것 입 니 다.
이 코드 를 알 아 보면 뒤의 것 이 모두 쉽다.타이머 로 콜 백 을 터치 하고 있 습 니 다.
// user setting
const SIGN_IN_TIME = "09:30:00"; //
const SIGN_OUT_TIME = "20:00:00"; //
// code implementation
logTime("code start running");
const now = new Date();
const today = now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDate();
var signInTime = +new Date(`${today} ${SIGN_IN_TIME}`);
logTime("signInTime", new Date(signInTime));
var signOutTime = +new Date(`${today} ${SIGN_OUT_TIME}`);
logTime("signOutTime", new Date(signOutTime));
// diff in or out
if (now > signInTime && now < signOutTime) {
// ready to sign out for today
console.log("Seconds to sign out for today: " + (signOutTime - now) / 1000);
setTimeout(callback, signOutTime - now);
} else {
// ready to sign in for tomorrow
signInTime = +signInTime + 60 * 60 * 24 * 1000;
console.log("Seconds to sign in for tomorrow: " + (signInTime - now) / 1000);
setTimeout(callback, signInTime - now);
}
function logTime(str, time = new Date()) {
console.log(`${str} -> ${time.getHours()}:${time.getMinutes()}:${time.getSeconds()}`);
}
1.정시 에 자동 으로 사이트 열기대부분의 사이트 에는'장시간 작 동 하지 않 음-자동 종료'라 는 설정 이 있 기 때문이다.그래서 우 리 는 카드 를 찍 어야 할 때 사 이 트 를 다시 열 어야 한다.
컴퓨터 로 컬 에서 프로그램 을 실행 하고 타 이 머 를 사용 합 니 다.여기 서 노드 프로그램 을 실행 합 니 다:
const open = require('open');
logTime("Start Runing");
// user setting
const SIGN_IN_TIME = "09:30:00";
const SIGN_OUT_TIME = "20:20:00";
// code implementation
const openBrowser = async () => {
await open('http://172.10.80.42');
};
logTime("code start running");
const now = new Date();
const today = now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDate();
var signInTime = +new Date(`${today} ${SIGN_IN_TIME}`);
logTime("signInTime", new Date(signInTime));
var signOutTime = +new Date(`${today} ${SIGN_OUT_TIME}`);
logTime("signOutTime", new Date(signOutTime));
// diff in or out
if (now > signInTime && now < signOutTime) {
// ready to sign out for today
console.log("Seconds to sign out for today: " + (signOutTime - now) / 1000);
setTimeout(openBrowser, signOutTime - now);
} else {
// ready to sign in for tomorrow
signInTime = +signInTime + 60 * 60 * 24 * 1000;
console.log("Seconds to sign in for tomorrow: " + (signInTime - now) / 1000);
setTimeout(openBrowser, signInTime - now);
}
function logTime(str, time = new Date()) {
console.log(`${str} -> ${time.getHours()}:${time.getMinutes()}:${time.getSeconds()}`);
}
2.자동 로그 인이 포 인 트 는 내용 을 채 워 야 할 DOM 요 소 를 찾 는 것 입 니 다.
(function() {
'use strict';
// login
document.querySelector("#loginid").value = " ";
document.querySelector("#userpassword").value = " ";
document.querySelector("#login").click();
})();
3.정 해진 시간 에 버튼 누 르 기이 단계 에서 가장 중요 한 것 은 단 추 를 정확하게 찾 고 요 소 를 검사 해서 천천히 찾 는 것 이다.
그 다음으로 출석 과 체크아웃 시간 을 설정 하고 고정 시간 만 자동 으로 출석 할 수 있 으 며 로그 인 할 때마다 자동 으로 출석 하거나 체크아웃 하 는 것 을 방지 하여 너무 자주 발견 된다.
(function() {
'use strict';
// user setting
const SIGN_IN_TIME = "09:00:00";
const SIGN_OUT_TIME = "21:00:00";
// code implementation
logTime("code start running");
const now = new Date();
const today = now.getFullYear()+"-"+(now.getMonth()+1)+"-"+now.getDate();
var signInTime = +new Date(`${today} ${SIGN_IN_TIME}`);
logTime("signInTime", new Date(signInTime));
var signOutTime = +new Date(`${today} ${SIGN_OUT_TIME}`);
logTime("signOutTime", new Date(signOutTime));
// diff in or out
if(now > signInTime && now < signOutTime) {
// ready to sign out for today
console.log("Seconds to sign out for today: " + (signOutTime - now)/1000);
setTimeout(signInorSignOut, signOutTime - now);
} else {
// ready to sign in for tomorrow
signInTime = +signInTime + 60 * 60 * 24 * 1000;
console.log("Seconds to sign in for tomorrow: " + (signInTime - now)/1000);
setTimeout(signInorSignOut, signInTime - now);
}
// signInorSignOut
function signInorSignOut(){
logTime(`signInButton clicked!`);
// , #signInButton,
document.querySelector("#signInButton").click();
}
function logTime(str, time=new Date()){
console.log(`${str} -> ${time.getHours()}:${time.getMinutes()}:${time.getSeconds()}`);
}
})();
4.끝한 세트의 조작 으로 일 을 끝 냈 다.매일 퇴근 할 때 는 일찍 빠 져 나 가든 늦게 도착 하 든 상관없다.로 컬 에서 프로그램 을 켜 는 것 을 기억 하 세 요:
node timer.js
JS 스 크 립 트 가 정시 에 사이트 에 출석/서명 기능 을 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 js 정시 에 출석 하고 서명 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.