"Навигатор не определен" 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() делает. Вам нужно открыть инструменты разработчика вашего браузера, чтобы видеть сообщения консоли. Открытые инструменты разработки также сообщают вам о других ошибках, которые могут произойти в вашем коде, поэтому рекомендуется всегда держать их открытыми в любое время, когда вы тестируете свой код.

Другие вопросы по тегам