2017-04-02 126 views
0

我正在开发一个带JavaScript的声音库。我创建了sound.js文件,并将此文件包含在test.php文件中。 sound.js文件包含一些功能。我的sound.js文件是这样的:外部JavaScript文件

var soundPath = './sound/'; 

/* 
* Sounds Path 
*/ 
var phoneNumberSound  = ['0.wav', '1.wav', '2.wav', '3.wav', '4.wav', '5.wav', '6.wav', '7.wav', '8.wav', '9.wav']; 
// var phoneCallSound   = null; 

/* 
* Play Phone Number's Sound 
*/ 
function playPhoneNumberSound (phoneNumber) 
{ 
    phoneNumber = parseInt(phoneNumber); 
    if (phoneNumber.length > 1){ 
     var phoneNumber = phoneNumber.substring(phoneNumber.length - 1); 
     new Audio(soundPath + phoneNumberSound[phoneNumber-1]).play(); 
    } else { 
     new Audio(soundPath + phoneNumberSound[phoneNumber-1]).play(); 
    } 
} 

/* 
* Coming Phone Incoming Sound 
*/ 
function playPhoneIncomingSound() 
{ 
    document.writeln('Test this func'); 
} 

在test.php中,我调用了上面的函数。第一个功能正在工作,但第二个功能或第三个或其他...不起作用。浏览器错误的结果是这样的:

Uncaught ReferenceError: playPhoneIncomingSound is not defined 

我test.php的文件是这样的:

<script src="lib/jquery.js"></script> 
<script src="lib/sound.js"></script> 

<input type="text" id="phoneNumber" /> 
<button id="playSound">Play Sound</button> 

<script type="text/javascript"> 

    $(document).ready(function() 
    { 
     $('#playSound').click(function() 
     { 
      playPhoneIncomingSound(); 
      // var phoneNumber = $('#phoneNumber').val(); 
      // playPhoneNumberSound(phoneNumber); 
     }); 
    }); 
</script> 

为什么?为什么会发生此错误?我的错误在哪里?

谢谢!

编辑: 这个关于Chrome的错误。当我清除浏览数据时,这个错误会丢失。在火箱里,我不喜欢这个错误!

回答

0

为什么不使用onclick调用playPhoneIncomingSound()

var soundPath = './sound/'; 
 

 
/* 
 
* Sounds Path 
 
*/ 
 
var phoneNumberSound = ['0.wav', '1.wav', '2.wav', '3.wav', '4.wav', '5.wav', '6.wav', '7.wav', '8.wav', '9.wav']; 
 
// var phoneCallSound   = null; 
 

 
/* 
 
* Play Phone Number's Sound 
 
*/ 
 
function playPhoneNumberSound(phoneNumber) { 
 
    phoneNumber = parseInt(phoneNumber); 
 
    if (phoneNumber.length > 1) { 
 
    var phoneNumber = phoneNumber.substring(phoneNumber.length - 1); 
 
    new Audio(soundPath + phoneNumberSound[phoneNumber - 1]).play(); 
 
    } else { 
 
    new Audio(soundPath + phoneNumberSound[phoneNumber - 1]).play(); 
 
    } 
 
} 
 

 
/* 
 
* Coming Phone Incoming Sound 
 
*/ 
 
function playPhoneIncomingSound() { 
 
    document.writeln('Test this func'); 
 
}
<button id="playSound" onclick="playPhoneIncomingSound()">Play Sound</button>

在你test.php的代码中,playPhoneIncomingSound();试图找到脚本的代码的功能,而不是在sound.js

+0

我以前试过,但它不”工作。问题在于Chrome。多谢,伙计! – jsawyer

+0

铬的问题是什么?控制台中有任何错误? –

+0

铬高速缓存的此错误。 – jsawyer