我有这段代码:
var me = {
PreloadImage: function(src) {
var e = new Image();
e.src = src;
},
CreateAudio : function(src) {
var c = new Audio(src);
c.play();
}
}
我遇到new Audio()
的问题,而Brackets中的JSLint
表示Audio
尚未定义,但Image
没有说明相同:< / p>
有时我必须执行window.console.log
而不是console.log
之类的操作,因为console.log
未定义,但如果是这种情况,我必须在Audio
之前添加什么和Image
?
答案 0 :(得分:0)
而不是var c = new Audio(src);
使用var c = document.createElement('audio'); c.src=src; c.play();
答案 1 :(得分:0)
被接受的答案似乎不是解决我这个问题的最佳方法。您应该更改JSLint
选项或在该特定行上禁用该规则。
在JSLint
和ESLint
中,您都可以修复它,也可以将其添加为全局变量:
{
"globals": {
"Audio": true
}
}
{
"env": {
"browser": true
}
}
JSLint:
{
"browser": true
}
您还可以在“括号”的首选项中对其进行更新:
"jslint.options": {
"browser": true,
OR
"globals": {
"Audio": true
}
}
您还可以为该行或该行上的特定规则禁用掉毛:
ESLint
:
const c = new Audio(src); // eslint-disable-line
或者:
// eslint-disable-next-line
const c = new Audio(src);
JSLint
:
const c = new Audio(src); // jslint ignore:line
答案 2 :(得分:-1)
您必须等待DOM准备就绪。由于您使用的是jQuery,请将您的代码封装在:
中$(document).ready(function () {
// Your code...
});
您也可以使用以下语法:
$(function () {
// Your code...
});
(额外提示:在代码中使用switch
指令。RoNBeta.js
有点吓人......)