"Навигатор не определен" JSHint, API прогноза с JSON
Для школьного задания мы должны создать небольшой прототип приложения, который взаимодействует с API Forecast.io. У меня мало опыта работы с API, но все в коде кажется чистым и нормальным.
Однако в скобках JSHint постоянно говорит мне: "Навигатор не определен (W117)". Кроме того, операторы console.log не работают в нескольких функциях, и браузер не просит меня сообщить свое местоположение. Я попытался скопировать точный код и имел те же результаты.
Ни один из журналов консоли в файле ничего не возвращает, у меня нет возможности проверить, получает ли мой браузер данные о местоположении.
//JSON declareren
(function () {
'use strict';
/*global $, jQuery, console, alert*/
//Variabelen invoegen
var latitude, longitude, url, App, myApp, day, days, month, months, year, years, dateTime, getTest, date, Location, myLocation;
App = function () {
this.getLocation = function () {
if (navigator.geolocation) {
console.log("Geofix werk");
navigator.geolocation.getCurrentPosition(this.updateWeather);
} else {
alert("Geolocation fix fail");
}
};
this.updateWeather = function (posn) {
console.log("Position OK");
latitude = posn.coords.latitude;
longitude = posn.coords.longitude;
console.log(latitude);
console.log(longitude);
url = "https://api.forecast.io/forecast/412e0bc4cc3095a2de7d0bdf663f4e3e/" + latitude + ',' + longitude + "?units=si";
$.ajax({
url: url,
dataType: 'jsonp',
type: 'GET',
success: function (resp) {
console.log(resp);
date = new Date();
getTest = date.getDate();
day = date.getDay();
month = date.getMonth();
year = date.getFullYear();
//arrays invoegen
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
}
});
};
};
myLocation = new App();
myLocation.getCurrentLocation();
}());
1 ответ
Если вы добавите navigator
к /*global ...
список, ошибка JSHint должна исчезнуть.
Попробуйте изменить код внизу на myLocation.getLocation();
так что это правильно соответствует названию функции, которую вы создаете выше (this.getLocation = ...
).
Кроме того, вы смешиваете alert()
а также console.log()
, Не забывай это console.log()
не показывает всплывающие сообщения в пути alert()
делает. Вам нужно открыть инструменты разработчика вашего браузера, чтобы видеть сообщения консоли. Открытые инструменты разработки также сообщают вам о других ошибках, которые могут произойти в вашем коде, поэтому рекомендуется всегда держать их открытыми в любое время, когда вы тестируете свой код.