2016-07-28 40 views
-2

問候。當我在Internet Explorer 11中打開以下內容時,當我點擊取消按鈕時遊戲不會停止。我如何按取消按鈕,遊戲停止。目前的行爲是它只是保持循環,即使取消?在javascript對話框上取消按鈕來停止循環

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; 
} 

回答

2

當按下prompt的提示,則返回null取消按鈕。所以

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

...將退出循環。

請注意,在相當老的瀏覽器上,它將返回""而不是null。但任何隱約現代的東西(IE9 +)都應該沒問題。