在我的页面开头,我有这个脚本来检查它是什么时间,如果它是在凌晨2点或下午6点之前,它将用户路由到新页面。
路由有效,但我页面上的其余代码仍然运行,这是一个问题。
有没有办法只运行第一个脚本,如果时间在指定范围内,则忽略其余脚本?
这是脚本:
<script>
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
window.location = "time-out";
}
</script>
答案 0 :(得分:1)
1)使代码返回,因此不再执行javascript代码。
var validation = true
if(validation) {
return 'We are done for today'
}
console.log('this wont fire');
2)使代码抛出错误,因此不再执行javascript代码。
var validation = true;
if(validation) {
throw new Error('We are done for today');
}
console.log('this wont fire')
如果要停止分离的脚本,可以在主范围内创建一个使用此方法之一的变量,然后不再执行javascript。
例如
var canExecute = true;
(function(){
if(1 === 1) {
canExecute = false;
}
})();
(function(){
if(canExecute === false) {
return;
}
//other code goes here.
})();
答案 1 :(得分:0)
要隐藏您的网页,请将此作为头部中的第一个代码
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
document.write("<style>body { display:none }</style>");
window.location.replace("time-out.html");
}
要不执行其他代码,请在else中添加其他代码:
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
window.location.replace("time-out.html");
}
else {
// other code
}
答案 2 :(得分:0)
<script>
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
window.location = "time-out";
}
else(){
foo();
}
</script>
这是否满足您的需求?
答案 3 :(得分:0)
您可以在时间检查后将所有其余代码放在else
块中。
<script>
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
window.location = "time-out";
}
else{
//code to be executed otherwise...
}
</script>
或者只是调用一个指向您实际想要运行的代码的函数。
答案 4 :(得分:0)
你必须首先放置所有依赖库,就像你使用jQuery协议一样,然后你在包含libs之后编写脚本,你的代码是完美的,并且工作正常,你不必放任何条件语句因为javascript是一种脚本语言,当你的小时条件匹配时,它会逐行读取代码,它不会加载脚本的其余部分并重定向到所需的页面,但请确保你没有使用任何document.ready like stuff。
<script>
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
window.location = "time-out";
}
</script>
感谢。 祝你有愉快的一天