Подтвердить что ты не робот

Как исправить "Документ использовался до его определения" с использованием Jslint

Я получаю следующую ошибку в jsLint:

'document' использовался до того, как он был определен.

Линия, вызывающая ошибку:

document.cookie = name + "=" + value + expires + "; path=/";

Я понимаю, почему это происходит, но я хотел бы, чтобы мой код был совместимым.

Как это разрешить?

Спасибо.

4b9b3361

Ответ 1

Место

/*jslint browser:true */

в начале тела вашей функции. Или, альтернативно, вы можете использовать

/*global document: false */

JSLint предназначен для проверки любого javascript-кода, а глобальный объект document не существует повсюду, поэтому вам нужно вручную сообщить JSLint, что ваш код предназначен для запуска в браузере и, следовательно, document глобальная переменная определено. Например, для серверного javascript ожидается, что JSLint сообщит об этой ошибке.

Ответ 2

На веб-сайте jslint вы можете прочитать о/глобальной/директиве, которая позволяет вам устанавливать переменные, которые предполагается объявить в другом месте.

Вот пример (поместите это в начало файла):

/\*global var1,var2,var3,var4,var5\*/

или, в случае с starjava:

/\*global document\*/

На самом деле я не уверен, нужны ли :true или :false, но это похоже на то, что я читал на сайте. http://www.jslint.com/lint.html

Убедитесь, что исходный глобальный оператор находится в той же строке, что и '/\*', иначе он сломается.

Ответ 4

Если весь ваш JS-код должен быть запущен из браузера, тогда просто добавьте флаг --browser.

jslint --browser my.js

Ответ 5

В режиме cli вы можете использовать конфигурационный файл:
jslint.conf

{
    "predef": [
        "module",
        "require",
        "window",
        "document",
        "jQuery",
        "Backbone",
        "Marionette",
        "Modernizr",
        "_",
        "setTimeout",
        "clearTimeout",
        "setInterval",
        "clearInterval"
    ],
    "evil":false,
    "indent":4,
    "vars":true,
    "passfail":false,
    "plusplus":false
}

И используйте jslint с параметром --config jslint.conf.