JSLint: «HTMLElement использовался до его определения». - PullRequest
1 голос
/ 20 августа 2011

JSLint: «HTMLElement использовался до его определения».

if (element instanceof HTMLElement)

Как это исправить?

Нужно ли добавлять исключение или игнорировать его?

Ответы [ 4 ]

6 голосов
/ 20 августа 2011

Установите флажок «Допуск неверных определений».

Это работает для меня, если весь мой сценарий:

var e;
if (e instanceof HTMLElement) {
    alert("");
}

и установленный флажок only «Допуск неверного задания»определения ".

Ответ, который я получаю:

Global HTMLElement, alert, e

Этот флажок, по-видимому, применяется только к идентификаторам, используемым в глобальной области.Если это делается в теле функции, JSLint будет жаловаться на alert, если вы не установите флажок «Предполагать консоль, оповещение».Однако следующий трюк действительно удовлетворяет JSLint:

var HTMLElement = HTMLElement;
(function () {
    var e;
    if (e instanceof HTMLElement) {
        alert("");
    }
}());

Это проходит с флажками «Предполагать консоль, оповещение», «Допускать ошибочные определения» и «Допускать пропущенное использование строго».Я получаю ответ:

Global HTMLElement  
3 'anonymous'()
    Variable e
    Global HTMLElement
    Complexity 2

Определенно взломать;/*global HTMLElement */ лучше.Имеет смысл, однако, после прочтения инструкций JSLint.

1 голос
/ 20 августа 2011

Вы также можете добавить HTMLElement в предопределенное текстовое поле внизу страницы JSLint (если вы используете онлайн-версию для проверки).

Поскольку я предполагаю, что вы находитесь в браузере, это должно быть допустимым исключением.

1 голос
/ 20 августа 2011

Похоже, вам придется добавить исключение для него.Я не смог найти ни одного из параметров флажка, которые устраняют ошибку.

0 голосов
/ 17 марта 2013

измените "alert" на "window.alert" и используйте директиву jslint / * браузер jslint: true * / вверху.

...