2016-07-28 8 views
-2

Gruß. Wenn ich im Internet Explorer 11 folgendes öffne, hört das Spiel nicht auf, wenn ich den Abbrechen-Button drücke. Wie kann ich die Abbrechen-Taste drücken und das Spiel stoppt. Das aktuelle Verhalten ist es einfach nur Schleifen mit Abbrechen?Schaltfläche Abbrechen auf JavaScript-Dialog, um eine Schleife zu stoppen

var target;    
var guess_input_text; 
var guess_input;  
var finished = false; 
var guesses = 0; 

function do_game() { 
    var random_number = Math.random() * 100; 
    var random_number_integer = Math.floor(random_number); 
    target = random_number_integer; 

    while (!finished) { 
     guess_input_text = prompt("I am thinking of a number "+ 
            "in the range 1 to 100.\n\n"+ 
            "What is the number?"); 
     guess_input = parseInt(guess_input_text); 
     guesses += 1; 
     finished = check_guess(); 
    } 
} 

function check_guess() { 
    if (isNaN(guess_input)) { 
     alert("You have not entered a number.\n\n" + 
       "Please enter a number in the range 1 to 100."); 
     return false; 
    } 
    if ((guess_input < 1) || (guess_input > 100)) { 
     alert("Please enter an integer number in the range 1 to 100."); 
     return false; 
    } 
    if (guess_input > target) { 
     alert("Your number is too large!"); 
     return false; 
    } 
    if (guess_input < target) { 
     alert("Your number is too small!"); 
     return false; 
    } 
    alert("You got it! The number was " + target + 
      ".\n\nIt took you " + guesses + 
      " guesses to get the number!"); 
    return true; 
} 

Antwort

2

Wenn Sie auf die Schaltfläche Abbrechen drücken auf prompt ‚s prompt, es null zurückgibt. So

if (guess_input_text === null) { 
    break; 
} 

... wird die Schleife verlassen.

Beachten Sie, dass auf ziemlich alten Browsern "" anstatt null zurückgegeben würde. Aber etwas vage Modern (IE9 +) sollte in Ordnung sein.

Verwandte Themen