Hallo zusammen,
ich möchte bei einem Klick auf einen Link einen Ton abspielen.
Beim MouseOver-Ereignis funktioniert das auch gut. Nur möchte ich es beim OnClick-Ereignis verwenden.
Muss ich irgend etwas besonders beachten?
Hier mein Code:
function sound(name){
ausgabe = ’ <embed src=„sound/’+name+’.wav“ width=1 height=0 autostart=true loop=false>’;
if (!document.all) {
document.layers[0].document.close();
document.layers[0].document.open();
document.layers[0].document.write(ausgabe);
document.layers[0].document.close();
}
else {
document.all.extrasound.innerHTML=ausgabe;
// extrasound ist ein div-Element
}
}
…
if (navigator.appName.indexOf(„Netscape“) != -1)
{
with (document)
{
write ("<embed src=„sound/camera.wav“ name=„camera“ autostart=„false“ hidden=„true“>");
}
}
Muss ich den Ton vielleicht vorladen. Er dauert etwa 2 Sekunden.
Des weiteren würde ich gern wissen, wie ich den Ton generell aus bzw. einzuschalten kann.
Danke im Voraus
Janine
Hallo Janine.
Hallo zusammen,
ich möchte bei einem Klick auf einen Link einen Ton abspielen.
Beim MouseOver-Ereignis funktioniert das auch gut. Nur möchte
ich es beim OnClick-Ereignis verwenden.
Muss ich irgend etwas besonders beachten?
Du wunderst dich warum das Wave File nicht abgespielt wird, richtig?
Nun, der Grund ist ganz einfach. Wenn du auf deinen HTML Link klickst, wird eine neue Seite requestet und geladen. Das bedeutet, dein mühevoll programmierter JavaScript, die HTML seite mit dem Link und dem eingebundenen Sound verschwinden nachdem du auf den Link klickst.
Der Browser kommt also gar nicht mehr dazu einen Pieps zu machen.
Du hast mehrere Möglichkeiten deinen Sound trotzdem nach dem Klick zu hören. Du könntest ihn zum Beispiel auf der neu zu ladenden Seite direkt abspielen lassen. Falls dir das nicht passt, schreib eine Javascript Funktion die mittels setTimeout den Seitenwechsel ein paar Sekunden verzögert. Also meinetwegen so ungefähr:
Dein Link:
…
Die zusätzlichen Funktionen im Head Bereich:
function warte1()
{window.setTimeout(„wechsel()“,6000);}
function wechsel()
{window.location.href=„irgendwohin.html“;}
Diese von mir erdachte Lösung ist aber sehr „dreckig“, da die setTimeout Methode in jedem Browser auf jedem Rechner etwas langsamer oder schneller ausgeführt wird und du sie deshalb nicht 100%tig auf dein Wave anpassen kannst.
Sag mal Bescheid, ob du klar kommst.
Gruß DP