我有一个要注册的网站。 如何使用 JavaScript 按时间关闭和打开注册表。 营业时间为上午 8:00 至下午 16:00。 下午 16:01 至上午 07:59 关闭。 如何使用 JavaScript 禁用所有元素,如输入、按钮或所有表单。 请帮我 。 非常感谢。
最佳答案
您可以包含此代码:
var disableOrEnableRegistry = function(disableAll){
//assuming need to disable all buttons and input
var buttons =document.getElementsByTagName('button');
var inputs =document.getElementsByTagName('input');
for(button of buttons){
button.disabled = disableAll;
}
for(input of inputs){
input.disabled = disableAll;
}
}
var toggleEnablingRegistry=function(toggle, interval, chechTimeCallback){
setTimeout(function() {
disableOrEnableRegistry(toggle);
chechTimeCallback(chechTimeCallback);
}, interval);
}
var checkTime = function(callback){
var d = new Date();
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
if(hours>16 || (hours === 16 && minutes > 0)){ //16:01-23:59
disableOrEnableRegistry(true);
var remainingHours=23-hours+7;
var remainingMinutes=60-minutes;
var remainingSeconds=60-seconds;
var remainingTimeInMiliseconds=(remainingHours*3600+remainingMinutes*60+remainingSeconds)*1000;
toggleEnablingRegistry(false, remainingTimeInMiliseconds, callback);
}
else if(hours<8){//00:00-7:59
disableOrEnableRegistry(true);
var remainingTimeInMiliseconds=(hours*3600+minutes*60+seconds)*1000;
toggleEnablingRegistry(false, remainingTimeInMiliseconds, callback);
}
else{//8:00-16:00
var remainingHours=23-hours+7;
var remainingMinutes=60-minutes;
var remainingSeconds=60-seconds;
var remainingTimeInMiliseconds=(remainingHours*3600+remainingMinutes*60+remainingSeconds)*1000;
toggleEnablingRegistry(true, remainingTimeInMiliseconds, callback);
}
}
checkTime(checkTime);
解释: “checkTime()”函数判断当前时间是禁用还是启用注册表;然后通过调用“toggleEnablingRegistry()”函数发送下一次应启用或禁用寄存器的时间,在剩余时间后再次调用“checkTime()”函数。
关于javascript - 如何按时间打开和关闭注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56618017/