Funktionalität:erleben „Uncaught Auslöser Range: Maximale Call-Stack-Größe überschritten“
Am versuchen, ein Quiz mit 5 versucht zu erstellen, wobei jede Frage Seite eine randomisierte Frage aus jeder Kategorie angezeigt ist.
Wenn also ein Benutzer jede Frage richtig beantwortet, wird die nächste Frage ausgeblendet und wenn der Benutzer 3 Fragen innerhalb von 3 von 5 Versuchen richtig beantwortet hat, werden diese zur gameWin Seite navigiert. Sonst, wenn Benutzer alle 5 Versuche ausgeschöpft haben, wird es die Benutzer zu einer GameOver Seite navigieren.
Ausgabe:
Zu diesem Zeitpunkt, nach dem Benutzer alle fünf Versuche ausgeschöpft haben, wird der folgende Fehler msg in meinem console.log as => Uncaught Auslöser Range angezeigt: Maximale Call-Stack-Größe überschritten .
Ich möchte um Hilfe bitten, wie das folgende Problem auf der Call-Stack-Größe behoben zu beheben.
Code:
function showQuestion() {
//Question list shown is more than 5, show game over
if (GamePage_question_list.length > 5) {
GameOver();
} else {
//Randomise Each Category Questions
//Randomise Category_A Question
random_Question_CategoryA = Math.floor(Math.random() * CategoryA_Questions.length);
//Randomise Category_B Question
random_Question_CategoryB = Math.floor(Math.random() * CategoryB_Questions.length);
//Randomise Category_C Question
random_Question_CategoryC = Math.floor(Math.random() * CategoryC_Questions.length);
//Randomise Category_D Question
random_Question_CategoryD = Math.floor(Math.random() * CategoryD_Questions.length);
//Display random question
random_Question = Math.floor(Math.random() * GameQuestion.length);
var exist = false;
for (i = 0; i < GamePage_question_list.length; i++) {
if (GamePage_question_list[i] == (random_Question_CategoryA + "")) {
exist = true;
} else if (GamePage_question_list[i] == (random_Question_CategoryB + "")) {
exist = true;
} else if (GamePage_question_list[i] == (random_Question_CategoryC + "")) {
exist = true;
} else if (GamePage_question_list[i] == (random_Question_CategoryD + "")) {
exist = true;
} else if (GamePage_question_list[i] == (random_Question + "")) {
exist = true;
}
}
Game_wait = false;
if (exist == false) {
//Display Question from each category after each question has been answered
if (GamePage_question_list.length == 0) {
console.log("Questions:" + CategoryA_Questions[random_Question_CategoryA]);
GamePage_question_list.push(random_Question_CategoryA + "");
$("#GamePage_question").html(CategoryA_Questions[random_Question_CategoryA]);
answerList = CategoryA_Answers[random_Question_CategoryA];
$("#GamePageAnswer_1").attr("src", answerList[0]);
$("#GamePageAnswer_2").attr("src", answerList[1]);
console.log("Answers:" + answerList);
} else if (GamePage_question_list.length == 1) {
GamePage_question_list.push(random_Question_CategoryB + "");
$("#GamePage_question").html(CategoryB_Questions[random_Question_CategoryB]);
answerList = CategoryB_Answers[random_Question_CategoryB];
$("#GamePageAnswer_1").attr("src", answerList[0]);
$("#GamePageAnswer_2").attr("src", answerList[1]);
} else if (GamePage_question_list.length == 2) {
GamePage_question_list.push(random_Question_CategoryC + "");
$("#GamePage_question").html(CategoryC_Questions[random_Question_CategoryC]);
answerList = CategoryC_Answers[random_Question_CategoryC];
$("#GamePageAnswer_1").attr("src", answerList[0]);
$("#GamePageAnswer_2").attr("src", answerList[1]);
} else if (GamePage_question_list.length == 3) {
GamePage_question_list.push(random_Question_CategoryD + "");
$("#GamePage_question").html(CategoryD_Questions[random_Question_CategoryD]);
answerList = CategoryD_Answers[random_Question_CategoryD];
$("#GamePageAnswer_1").attr("src", answerList[0]);
$("#GamePageAnswer_2").attr("src", answerList[1]);
} else if (GamePage_question_list.length == 4) {
GamePage_question_list.push(random_Question + "");
$("#GamePage_question").html(GameQuestion[random_Question]);
answerList = GameAnswer[random_Question];
$("#GamePageAnswer_1").attr("src", answerList[0]);
$("#GamePageAnswer_2").attr("src", answerList[1]);
}
} else {
showQuestion();
}
}
}
function select_answer(flag) {
if (Game_wait == false) {
Game_wait = true;
var currentQuestionIndex = GamePage_question_list[GamePage_question_list.length - 1];
var CategoryA_correctAnswer = CategoryA_CorrectAnswers[parseInt(currentQuestionIndex)];
var CategoryA_POPUP_Answer = CategoryA_PopUpAnswers[parseInt(currentQuestionIndex)];
var CategoryB_correctAnswer = CategoryB_CorrectAnswers[parseInt(currentQuestionIndex)];
var CategoryB_POPUP_Answer = CategoryB_PopUpAnswers[parseInt(currentQuestionIndex)];
var CategoryC_correctAnswer = CategoryC_CorrectAnswers[parseInt(currentQuestionIndex)];
var CategoryC_POPUP_Answer = CategoryC_PopUpAnswers[parseInt(currentQuestionIndex)];
var CategoryD_correctAnswer = CategoryD_CorrectAnswers[parseInt(currentQuestionIndex)];
var CategoryD_POPUP_Answer = CategoryD_PopUpAnswers[parseInt(currentQuestionIndex)];
var correctAnswer = GameCorrectAnswer[parseInt(currentQuestionIndex)];
var POPUP_Answer = GamePopUpAnswer[parseInt(currentQuestionIndex)];
console.log("flag_answer chosen:" + flag);
//Show the POPUP Correct answer
//THIS IS THE PART WHERE THE CORRECT ANSWER WILL SHOW IF THE USER ANSWERS EACH QUESTION WRONGLY
if (GamePage_question_list.length == 1) {
console.log("CategoryA_correctAnswer" + CategoryA_correctAnswer);
console.log("A");
} else if (GamePage_question_list.length == 2) {
console.log("CategoryB_correctAnswer" + CategoryB_correctAnswer);
console.log("B");
} else if (GamePage_question_list.length == 3) {
console.log("CategoryC_correctAnswer" + CategoryC_correctAnswer);
console.log("C");
} else if (GamePage_question_list.length == 4) {
console.log("CategoryD_correctAnswer" + CategoryD_correctAnswer);
console.log("D");
} else if (GamePage_question_list.length == 5) {
console.log("GameCorrectAnswer" + GameCorrectAnswer);
console.log("E");
}
}
}
function GameOver() {
idleTime = 0;
console.log("GameOver");
setTimeout(function() {
location.reload();
}, 5000);
}
<!-- Original Question -->
<div id="GamePage_question" style="position:absolute; z-index:99; top:460px; left:160px; margin:auto; color:#FFFFFF; font-size:60px; font-family: Calibrib; width:800px; text-align: center;"></div>
<!-- Answer-Original-Choice List -->
<img id="GamePageAnswer_1" style="position:absolute; z-index:3; top:1100px; left:260px; margin:auto;" />
<img id="GamePageAnswer_2" style="position:absolute; z-index:3; top:1300px; left:260px;" />
<!-- Selection answer -->
<img src="lib/image/transparent.png" class="transparentBg" style="position:absolute; z-index:4; top:1100px; left:0px; margin:auto; width:1080px; height:150px; border:1;" onclick="select_answer(1);" />
<img src="lib/image/transparent.png" class="transparentBg" style="position:absolute; z-index:4; top:1300px; left:0px; margin:auto; border:1; width:1080px; height:150px;" onclick="select_answer(2);" />
Seine zurück sehr verwirrend, um den vollständigen Code zu betrachten. Hier ist, was Sie tun können .. Haben Sie einfach den Code, der ausgeführt wird, wenn der Benutzer die ganze Zeit falsch antwortet. Auf diese Weise ist der Code minimal und wir können besser helfen. Auch FYI dieser Fehler tritt auf, wenn es immer Endlosschleifen im Code gibt .. –
@Reddy, ich habe versucht, so viel wie möglich zu minimieren – Luke
danke, lassen Sie mich überprüfen –