2017-04-02 1 views
0

Ich entwickle eine Sound-Bibliothek mit JavaScript. Ich habe die Datei sound.js und diese Datei in der Datei test.php erstellt. sound.js Datei enthält eine Funktion. Meine sound.js Datei wie folgt:Externe JavaScript-Datei

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'); 
} 

In test.php, rufe ich oben Funktionen. Erste Funktion funktioniert, aber die zweite Funktion oder dritte oder andere ... funktioniert nicht. Browser Fehlerergebnis ist wie folgt:

Uncaught ReferenceError: playPhoneIncomingSound is not defined 

Meine test.php Datei ist wie folgt:

<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> 

Warum? Warum dieser Fehler auftritt? Wo ist mein Fehler?

Vielen Dank!

Bearbeiten: Dieser Fehler über Chrome. Wenn ich die Browserdaten lösche, ist dieser Fehler verloren. In Firebox habe ich diesen Fehler nicht gemacht!

Antwort

0

Warum rufen Sie nicht playPhoneIncomingSound() mit onclick?

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>

In Ihrem test.php Code, die playPhoneIncomingSound(); versucht, die Funktion im Skript-Tag-Code zu finden, aber nicht in sound.js

+0

Ich habe versucht, bevor diese aber es doesn‘ t arbeiten. Das Problem ist mit Chrome. Danke, Alter! – jsawyer

+0

Was ist das Problem in Chrom? irgendein Fehler in der Konsole? –

+0

Dieser Fehler beim Chrom-Caching. – jsawyer