猿问

连续更新 html 而不出现 javascript 中的最大调用堆栈大小错误的最佳方法是什么

我正在为朋友的网站编写一个简单的基于文本的游戏。我需要能够更改 HTML 元素或更新 HTML 页面,而不会遇到超出最大调用堆栈错误。我目前正在使用


document.getElementById('console').innerHTML += "whatever"

我需要一个没有错误的方法


这是加载的第一个函数。然后它会转到prompt_input();功能。


function title_screen(){

    document.getElementById('console').innerHTML += '...'

    quests.push('Getting Started');

    prompt_input();

}

这就是提示输入功能。它在运行适当的函数时接受用户输入。除了 restart() 之外的每个函数;函数返回到prompt_input();以获得下一轮玩家的输入。


慕盖茨4494581
浏览 60回答 1
1回答

慕田峪7331174

function prompt_input(){  var action = document.getElementById("myInput").value;  if (action == ""){    prompt_input();  }  ...这里有一个无限循环。此条件之前的任何内容都不会使下一次调用时的条件发生变化:如果输入value是"",那么它仍然是,并且您的代码将继续执行,直到达到最大调用堆栈。我不太确定您期望这个递归调用做什么,但快速浏览一下,我想说您只需要在这种情况发生时提前退出:function prompt_input(){  var action = document.getElementById("myInput").value;  if (action == ""){    return; // early exit  }  ...
随时随地看视频慕课网APP

相关分类

Html5
我要回答