简体   繁体   中英

HTML, JavaScript and ERR_FILE_NOT_FOUND error

I have a simple html page with javascript code.

HTML

<!doctype html>
<html>
   <head>
      <meta charset="utf-8" />
      <title>Sink The Battle Ship</title>
   </head>
   <body>
      <h1>Battleship</h1>
      <script src="battleship.js"></script>
   </body>
</html>

JavaScript

var location = Math.floor(Math.random() * 5);
var numberOfGuesses = 0;
var isSunk = false;
var guess;
var guess = prompt("Ready, aim, fire! (enter a number from 0-6):");
var guessedLocation = parseInt(guess);
console.log(guess);
console.log(guessedLocation);

Every time I launch the html in browser, the prompt displays and when I enter a value, it gives me an error "ERR_FILE_NOT_FOUND". It looks like the browser is trying to re-direct to a page with the value I entered. Any idea what is going wrong here? I tried opening the html in different browsers and still no luck.

The problem is that you are redefining a global variable, called location.

When you declare a variable like this

var location = 1;

is the same as doing this

window.location = 1;

Location is a browser variable used to define in which page (location) the user is in.

You can do two things,

1 - Rename your variable location to: $location, location_2, my_location

var myLocation = Math.floor(Math.random() * 5);

2 - Create a local scope

(function(){
    var location = Math.floor(Math.random() * 5);
    var numberOfGuesses = 0;
    var isSunk = false;
    var guess = prompt("Ready, aim, fire! (enter a number from 0-6):");
    var guessedLocation = parseInt(guess);
    console.log(guess);
    console.log(guessedLocation);
})()

Also, stop re-declaring the variable guess, only use ONE 'var' for every variable name

 (function(){ var location = Math.floor(Math.random() * 5); var numberOfGuesses = 0; var isSunk = false; var guess; var guess = prompt("Ready, aim, fire! (enter a number from 0-6):"); var guessedLocation = parseInt(guess); console.log(location); console.log(guessedLocation); guessedLocation == location ? console.log('you sank me!') : console.log('ha! missed...') })(); 
 <!doctype html> <html> <head> <meta charset="utf-8" /> <title>Sink The Battle Ship</title> </head> <body> <h1>Battleship</h1> <script src="battleship.js"></script> </body> </html> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM