2017-01-28 8 views
-2

Я практикую html, css и javascript, и я пытался запустить этот код, но в итоге не смог этого сделать. Я не мог понять, где я ошибся. Все ваши усилия приветствуются.Мой html-код не работает, когда я включаю код javascript

<!doctype html> 
 
<html> 
 

 
<head> 
 
    <title>Example of a function</title> 
 
    <script> 
 
    var colors = { 
 
     "blue", "green", "red" 
 
    }; 
 
    var guessColor; 
 
    var guesses = 0; 
 
    var finished = false; 
 
    var target_index; 
 
    var targetColor; 
 

 
    function do_game() { 
 
     var randomNo = Math.random() * 3; 
 
     var randomNo_integer = Math.floor(randomNo); 
 
     target_index = randomNo_integer; 
 

 
     targetColor = colors[target_index]; 
 

 
     while (!finished) { 
 
     guessColor = prompt("I am thinking of one of these colors:\n\n" + 
 
      "Blue, Green, Red\n\n" + 
 
      "What color am I thinking of?"); 
 

 
     if (guessColor.toUpperCase() == targetColor.toUpperCase()) 
 
      finished = true; 
 
     } 
 
     document.body.style.backgroundColor = guessColor.toLowerCase(); 
 
    } 
 
    </script> 
 
</head> 
 

 
<body onload="do_game()"> 
 
</body> 
 

 
</html>

+0

Что HTML код не работает? Я не вижу какой-либо HTML-код в теле? – Shubhranshu

+3

var colors = ["синий", "зеленый", "красный"]; – smozgur

+4

Typo. 'var colors = [" blue "," green "," red "];' –

ответ

-3

Да, все кода прав. Но одно нужно исправить. Вы берете переменную colorsvar colors = {"blue", "green", "red"};, но вы берете ее как объект JavaScript. Вы должны объявить его как правильный код Array

должен быть var colors = ["blue", "green", "red"];

Попробуйте, как только вы получите ваш ожидаемый результат! :)

+0

Вы уже видели комментарии. Пожалуйста, не отвечайте на вопросы о типографии – mplungjan

+0

Да, спасибо. –

0

Вы должны изменить то, что вы назначили colors. В настоящее время вы назначаете объект, а не массив, как и ожидалось.

Затем вы можете удалить onload="do_game()" форму элемента тела и добавить прослушиватель события, который будет прослушивать события окно загрузки

Почему мы завернуты весь код в функции называется функ?

Мы сделали это, чтобы не загрязнять global namespace.

function func(){ 
 
    var colors = ["blue", "green", "red"]; 
 
    var guessColor; 
 
    var guesses = 0; 
 
    var finished = false; 
 
    var target_index; 
 
    var targetColor; 
 
    function do_game(){ 
 
    var randomNo = Math.random() * 3; 
 
    var randomNo_integer = Math.floor(randomNo); 
 
    target_index = randomNo_integer; 
 

 
    targetColor = colors[target_index]; 
 

 
    while(!finished){ 
 
     guessColor = prompt("I am thinking of one of these colors:\n\n" + 
 
          "Blue, Green, Red\n\n" + 
 
          "What color am I thinking of?"); 
 

 
     if(guessColor.toUpperCase() == targetColor.toUpperCase()) 
 
     finished = true; 
 
    } 
 
    document.body.style.backgroundColor = guessColor.toLowerCase(); 
 
    } 
 

 
    // Here we call our function that will trigger the start of the game. 
 
    // This function would be called when the DOMContentLoaded event is fired. 
 
    do_game(); 
 
} 
 

 
window.addEventListener("load", func);
<h1>Game Title</h1>

+0

Это еще опечатка. 'window.onload' более совместим - и теперь усложняет работу с вложенными функциями – mplungjan

0

Ваше объявлении массива, он должен быть

var colors = [ 
    "blue", "green", "red" 
]; 

<!doctype html> 
 
<html> 
 

 
<head> 
 
    <title>Example of a function</title> 
 
    <script> 
 
    var colors = [ 
 
     "blue", "green", "red" 
 
    ]; 
 
    var guessColor; 
 
    var guesses = 0; 
 
    var finished = false; 
 
    var target_index; 
 
    var targetColor; 
 

 
    function do_game() { 
 
     var randomNo = Math.random() * 3; 
 
     var randomNo_integer = Math.floor(randomNo); 
 
     target_index = randomNo_integer; 
 

 
     targetColor = colors[target_index]; 
 

 
     while (!finished) { 
 
     guessColor = prompt("I am thinking of one of these colors:\n\n" + 
 
      "Blue, Green, Red\n\n" + 
 
      "What color am I thinking of?"); 
 

 
     if (guessColor.toUpperCase() == targetColor.toUpperCase()) 
 
      finished = true; 
 
     } 
 
     document.body.style.backgroundColor = guessColor.toLowerCase(); 
 
    } 
 
    </script> 
 
</head> 
 

 
<body onload="do_game()"> 
 
</body> 
 

 
</html>

+0

Вы уже видели комментарии. Пожалуйста, не отвечайте на вопросы о типографии – mplungjan

+0

ya sure..thanks –

Смежные вопросы