2017-04-15 27 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文件應該是靈活的。 –