2017-04-15 61 views
0

我有一个非常奇怪的情况。这是我的代码布局。
新音频()未定义

var me = { 
PreloadImage : function(src){ 
var e = new Image(); 
e.src = src; 
}, 
CreateAudio : function(src){ 
var c = new Audio(src); 
c.play(); 
} 
} 

这不是我的确切的代码,但是这是我的问题的基础。它在一个外部JS文件中。但是,我的问题在于new Audio()。它说Audio尚未定义,但Image的说法不一样。有时我必须做些事情,比如window.console.log而不是console.log,因为console.log没有定义,但是如果是这样的话,我在AudioImage之前输入什么?

他是一个情况的图片。 (picture)

编辑:如果您需要任何信息,Create Audio是唯一添加到我的脚本。你可以view the script at GitHub

+0

李四代码仍然工作?这只是一个JSLint警告,而不是JavaScript错误。 – JJJ

+0

@JJJ号我想我修好了。 –

回答

0

代替var c = new Audio(src);使用var c = document.createElement('audio'); c.src=src; c.play();

-1

您必须等待DOM准备就绪。由于您正在使用jQuery,请封装你的代码是:

$(document).ready(function() { 
    // Your code... 
}); 

您也可以使用这个语法:

$(function() { 
    // Your code... 
}); 

(特别提示:使用switch指令代码RoNBeta.js是有点可怕......)

+0

我没有在RoNBeta.js中使用jQuery。我添加了一个功能来检查它。 –

+0

是的,但你正在使用它在你的HTML文件... – Badacadabra

+0

也许是这样,但我的JS文件应该是灵活的。 –