Morjensta taas!
Tällä kertaa pitäisi saada sellainen systeemi, että headissa olisi määritelty embed-ääni, ja sen jälkeen kutsuttaisiin alerttia. Nähtävästi käy niin, että alert tulee ennen ääntä, vaikka pitäisi olla toisinpäin.
Voisihan sinnen laittaa sen äänen toiston, ja sitten PHP:llä sleep(x), ja sitten alert, mutta en tiedä toimiiko tai onko järkevää.
Miten voisi järkevimmin tehdä?
PHP:n sleep ei liene fiksua, koska PHP suoritetaan ennen kuin tuota embed ääntä kutsutaan. Itse ongelma voisi ratketa kutsumalla ääntä ennen alertia. Tai laita näkyville koodia, joka toimii mielestäsi väärin.
Teuro kirjoitti:
Itse ongelma voisi ratketa kutsumalla ääntä ennen alertia.
No, IE ei ainakaan näyttänyt toimivan:
<html> <head> <title>...</title> <embed src="ääni.mp3" /> <script type="text/javascript"> alert("Tämä tulee ennen ääntä :("); </script> </head> ...
Embed elementin tulisi olla body tagin jälkeen. Ainakin tämän lähteen mukaan.
Toimii se nähtävästi sielläkin, mutta silti alert tulee aina ensin.
Yritä ymmärtää, että HTML ei ole ohjelmointikieli eikä sillä ole aikajärjestystä. Ääni soi, kun se on saatu ladattua, ja skripti ajetaan, kun se on saatu ladattua.
Jos äänen kesto on tiedossa, voit yrittää kiertää asian sivun onload-tapahtumalla ja setTimeout-funktiolla.
function nayta_alert() { alert("XYZ"); } var aanen_kesto = 1000 * 3; // 3 sekuntia window.onload = function() { setTimeout(nayta_alert, aanen_kesto); }
Silti on mahdollista, että esimerkiksi äänen soittaminen alkaa hieman myöhässä, kun pitääkin käynnistää ääniä soittava plugin.
Kiitos Metabolix. Nyt sain toimimaan, kun tein tuon :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.