【问题标题】:Why is function not executed when webpage is opened in browser?为什么在浏览器中打开网页时功能不执行?
【发布时间】:2015-10-12 04:25:31
【问题描述】:

我正在尝试创建一个无限循环的函数,直到用户输入他们想要退出的内容。但是,每次在浏览器中打开网页时,都没有出现提示框,也没有执行infiniteLoop() 函数。为什么没有调用infiniteLoop() 函数?

function infiniteLoop() {
    i= 0;
    var begin= prompt("Shall we begin?");
    if (begin == "Yes") {
        var tryAgain= prompt("Exit loop?");
        if (tryAgain != "Yes") {
            infiniteLoop();
        }
    }
}

【问题讨论】:

  • 您忘记在加载时调用函数infiniteLoop()。
  • 代码不工作,因为您已经定义了函数,但没有在其定义之外的任何地方调用它。这就是为什么当你在定义之外的任何地方调用函数infiniteLoop(),它就会开始工作。

标签: javascript loops if-statement browser prompt


【解决方案1】:

需要在窗口onload事件中调用该函数。

window.onload = function(){
     infiniteLoop();
}

或者,如果您使用的是 jquery

$(function() {
    infiniteLoop();
});

【讨论】:

    【解决方案2】:

    没有出现提示框是因为你的网页加载时没有调用该函数。

    在声明函数后添加 infiniteLoop()

    例如

    function infiniteLoop() {
        i= 0;
        var begin= prompt("Shall we begin?");
        if (begin == "Yes") {
            while (i < 5) {
                var tryAgain= prompt("Are you sure?");
                if (tryAgain == "Yes") {
                    i++;
                }
                else {
                    infiniteLoop();
                }
            }
        }
        else {
            infiniteLoop();
        }
    }
    // Initial call
    infiniteLoop();
    

    【讨论】:

      【解决方案3】:

      IT WORKS,写 5 次“Yes”(区分大小写)就完成了,否则无限工作,别忘了调用 infiniteLoop()

      【讨论】:

        【解决方案4】:

        打扫干净

        (function infiniteLoop() {
          var begin = prompt("Shall we begin?");
        
          if (begin === "Yes") {
            var i= 0;
            while (i < 5) {
              var tryAgain = prompt("Are you sure?");
              if (tryAgain === "Yes") {
                i++;
              }
        
              else {
                infiniteLoop();
              }
            }
          }
        
          else {
            infiniteLoop();
          }
        })()
        

        【讨论】:

          猜你喜欢
          • 2019-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多