‘Audio’ использовался до того, как он был определен

#javascript #html5-audio #jslint #ecmascript-5

#javascript #html5-audio #jslint #ecmascript-5

Вопрос:

У меня есть файл JavaScript, который я проверяю с помощью JSLint (плагин Notepad версии 0.8.2). У меня установлены следующие параметры:

 /*jslint indent: 4, maxerr: 9999, white: true, browser: true, devel: true,
es5: true, plusplus: true, regexp: true, sloppy: true */
 

JSLint жалуется на эту строку:

 new Audio('sounds/ding.wav').play();
 

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

Кажется, ему не нравится ES5? Как я могу устранить эту ошибку?

Ответ №1:

Вы должны иметь возможность указывать Audio как «Предопределенные» в настройках плагина или, как вы упомянули, как global в файле, который его использует:

 /*global Audio: false */
 

Включение false здесь описывает его как доступное только для чтения.

Ошибка заключается в том, что JSLint в настоящее время не подтверждает его как возможный глобальный для браузеров:

 // browser contains a set of global names that are commonly provided by a
// web browser environment.

        browser = array_to_object([
            'clearInterval', 'clearTimeout', 'document', 'event', 'FormData',
            'frames', 'history', 'Image', 'localStorage', 'location', 'name',
            'navigator', 'Option', 'parent', 'screen', 'sessionStorage',
            'setInterval', 'setTimeout', 'Storage', 'window', 'XMLHttpRequest'
        ], false),
 

Также обратите внимание, что Audio это определяется HTML, а не ECMAScript.

Комментарии:

1. Да, просто fwiw, аудио нигде нет в источнике . Ужин из курицы.