如果语句为真,则Don't运行页面的其余部分

If Statement Is True, Don't Run Rest Of Page

本文关键字:运行 余部 语句 Don 如果      更新时间:2023-09-26

在我的页面开始时,我有一个脚本,它会检查现在是什么时间,如果已经过了凌晨2点或下午6点之前,它会将用户路由到一个新页面。

路由是有效的,但我页面上的其余代码仍在运行,这是一个问题。

如果时间在指定范围内,有没有办法只运行第一个脚本而忽略其余脚本?

这是脚本:

<script>
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
window.location = "time-out";
}
</script>

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.
})();

经过时间检查后,您可以将代码的所有其余部分放在else块中。

<script>
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
window.location = "time-out";
}
else{
    //code to be executed otherwise...
}
</script>

或者只调用一个指向您实际想要运行的代码的函数。

<script>
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
  window.location = "time-out";
}
else(){
  foo(); 
}
</script>

这能满足你的需求吗?

您必须首先放置所有依赖库,就像使用jQuery协议一样,然后你在include-libs之后编写脚本,你的代码是完美的,可以很好地工作,你不必放任何条件语句,因为javascript是一种脚本语言,当你的小时条件匹配时,它会逐行读取代码,它不会加载脚本的其余部分并重定向到所需页面,但请确保你没有使用任何document.ready之类的东西。

<script>
var hour = new Date().getHours();
if(hour >= 2 || hour <= 18) {
window.location = "time-out";
}
</script>

谢谢。祝你今天愉快

要隐藏页面,请将其作为头中的第一个代码

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
}