如果条件为true,如何停止执行javascript

How to stop execution of javascript if condition is true?

本文关键字:何停止 执行 javascript 条件 true 如果      更新时间:2023-09-26

我想用一个特定的URL来标记我的移动访问者,比如http://www.example.com.index.html?source=mobile我使用这个脚本将访问者重定向到给定的url

<script type="text/javascript">
<!--
if (screen.width <= 800) 
{
    window.location ="http://www.example.com/index.html?source=mobile";
}
//-->
</script>

但当我使用这个脚本时,页面一次又一次地加载,所以我试图在这个脚本中添加另一个条件,但我不知道如何使第二个条件停止加载。

<script type="text/javascript">
<!--
if (screen.width >= 800) 
{
    window.location ="http://www.example.com/index.html?source=mobile";
}
 Else if (document.referrer ="http://www.example.com/index.html?source=mobile")
{
    //stop execution here
}

//-->
</script>

现在,如果第二个条件为真,请有人帮我停止执行javascript。

提前谢谢。

将语句包装在匿名函数中:

(function(){
    if (screen.width >= 800)  {
        window.location = "http://www.example.com/index.html?source=mobile";
    }else if (document.referrer == "http://www.example.com/index.html?source=mobile") {
        return;
    }
});

您只能在函数中使用return,而不管其他答案是怎么说的。

我还假设您将在if语句下面添加更多的代码,否则停止执行是没有用的。

你的代码有几个问题:

  1. 您用大写E拼写else,is应为小写
  2. 在else-if语句中,您没有使用两个等号

这两个问题都在上述代码中进行了修订

怎么样

if (screen.width >= 800 && document.referrer !="http://www.example.com/index.html?source=mobile") 
{
    window.location ="http://www.example.com/index.html?source=mobile";
}

你现在设置它的方式不会像第一个那样起作用。如果总是满足的话,你应该按照我在这里的建议做,或者把文档引用条件放在第一个(加上你需要==不=)。

你应该直接在php/whateveryouuse中检测移动浏览器,有很多移动检测器脚本(检查用户代理如何检查请求是否来自php中的移动或计算机)

现在的方式是:用户进入网站,如果分辨率低,他会被重定向到…同一个页面!(两次加载站点)

如果检测到移动服务器端:用户只进入站点一次<--更快,即使javascript被禁用也能工作

此外,如果您只关心浏览器的分辨率

,那么您应该阅读一些关于响应式设计的内容

使用window.location.href获取URL

你有一个打字错误:else if。。不是Else if

 if (screen.width >= 800 && window.location.href !="http://www.example.com/index.html?source=mobile") 
{
    window.location.href ="http://www.example.com/index.html?source=mobile";
}

在停止执行的情况下,

else if (window.location.href ="http://www.example.com/index.html?source=mobile")
        {
            return;//to stop execution here..use return;
        }
   // This condition is unnecessary though

注意return true,return false and return 之间存在差异

return false:停止事件"冒泡"。停止执行

返回true:继续执行。

返回

这里引用了ECMA262标准中关于返回的一句话,JavaScript是基于该标准的;如前所述,结果是"未定义的"。

如果ECMAScript程序包含一个不在FunctionBody中的返回语句。A.return语句导致函数停止执行并返回值。如果省略了Expression,则返回值为未定义。否则,返回值为Expression的值。

IE8、IE8+、IE11、Firefox、Chrome:

<script>
  ... I wana cancel here ...
  if (document.execCommand) document.execCommand('Stop');   
  if (window.stop) window.stop();   
</script>