addEventListener on error cumuleert errors

Status
Niet open voor verdere reacties.

Snarffy

Gebruiker
Lid geworden
23 okt 2009
Berichten
35
Heb o.a. het volgende in een html pagina staan :

document.getElementById("AudioPlayer").addEventListener('error' , function() {alert('error loading \"'+document.getElementById("AudioPlayer").src+'\"');return;}, false);
document.getElementById("AudioPlayer").src=SubDirFile1;

Zodra ik document.getElementById("AudioPlayer").src een waarde geef (SubDirFile1) welk geen geldige stream is dan wordt de function vermeld in de regel met addEventListener uitgevoerd, dit is zoals bedoelt.

Geef ik daarna document.getElementById("AudioPlayer").src een andere ongeldige waarde dan wordt de function twee keer uitgevoerd, het aantal keer dat de function uitgevoerd wordt verhoogd zich evenredig aan het het aantal keren dat er een niet geldige stream opgegeven is ongeacht of er tussendoor een geldige stream opgegeven is.

Dit is niet wat ik wil, heeft iemand hier een oplossing voor ?

P.S. Momenteel heb ik eea getest in FF 37.0.2

Zie antwoord graag tegemoet.

Gr Snarffy
 
removeEventListener

Hallo Supersnail bedankt voor je antwoord,

removeEventListener heb ik na het plaatsen van de melding ook geprobeerd, geeft niet het gewenste resultaat.

Gr Snarffy
 
Opgelost - workaround

Door gebruik te maken van onloadmetadata heb ik het hiervoor geschetste probleem opgelost, een workaround dus.

Zie hieronder hoe ik eea gedaan heb :

document.getElementById("NowPlaying").innerHTML="Trying to load MetaData, moment please !";
LoadMetaDataTimer=setTimeout(function(){ document.getElementById("NowPlaying").innerHTML="Unable to load MetaData.";}, 5000);
document.getElementById("AudioPlayer").onloadedmetadata=function() {
clearTimeout(LoadMetaDataTimer);
document.getElementById("NowPlaying").innerHTML="MetaData loaded !";
GetNowPlayingInterval = setInterval(function(){ GetNowPlaying(SubDirFile1) }, 5000);
}

1. In "Nowplaying" meedelen dat er een poging gedaan wordt om de MetaData te downloaden.
2. Daarna een timer aangezet welke na 5 seconden laat weten dat het downloaden niet gelukt is.
3. Onloadmetadata, indien van toepassing en de 5 seconden nog niet voorbij zijn dan zal de functie welke
aangeroepen zou moeten worden door de Timeout onklaar gemaakt worden. Tevens melding dat het
downloaden gelukt is.
4. Funktie aanroepen voor het presenteren van de "Now Playing" informatie.

Gr Snarffy
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan