Frågan 13 juli 2005 14:48 #1 Sitter och labbar lite med att styra QuickTime pluginen i webläsaren med javascript enligt:
http://developer.apple.com/documentation/QuickTime/Conceptual/QTScripting_JavaScript/QTScripting_JavaScri_Document/chapter_1000_section_4.html
Exempel:
<OBJECT classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab"
width="180" height="160"
autostart="true"
id="movie1" >
<PARAM name="src" value="/trailers/<%=varMovieSrc%>">
<EMBED width="180" height="160"
autostart="true"
src="/trailers/<%=varMovieSrc%>"
TYPE="video/quicktime"
PLUGINSPAGE="www.apple.com/quicktime/download"
name="movie1"
enablejavascript="true">
</EMBED>
</OBJECT>
<hr>
<a href="javascript:document.movie1.Play();">movie1.Play()</a><br>
<a href="javascript:document.movie1.Stop();">movie1.Play()</a><br>
<a href="javascript:alert(document.movie1.GetEndTime());">movie1.Play()</a><br>
<script language ="JavaScript">
alert(document.movie1.GetEndTime())
</script>
Varför fungerar länken <a href="javascript:alert(document.movie1.GetEndTime());">movie1.Play()</a><br> men inte alerten nedanför?
Måste man skapa en funktion som triggas på onLoad för att det inte ska generera ett fel ?
Ingen som har någon förklaring ?
Helt enkelt därför att quicktime-pluggen inte är inladdad vid det tillfället. Du måste vänta på onload. I ditt fall så funkar det om du klickar på länkarna, men det är inget du ska ta för givet. Om sidan av någon anledning skulle laddas så långsamt att du hann klicka på en av länkarna innan pluggen var laddad, så skulle även detta skapa ett fel.
Tack för ditt svar. Jag drar samma slutsats. Men jag får det inte att fungera med onLoad heller.
<body bgcolor="black" text=white Onload="funGetInfo()">
<script language ="JavaScript">
function funGetInfo(){
varMovieLength = document.movie1.GetDuration()
varMovieTimeScale = document.movie1.GetTimeScale()
alert(varMovieTimeScale +" - " +document.movie1.GetDuration())
varMovieLength = varMovieLength / varMovieTimeScale / 60
document.frmSaveData.req_end_tim.value = varMovieLength
//alert(document.movie1.GetEndTime() +"\n" +document.movie1.GetQuickTimeVersion() +"\n" +document.movie1.GetQuickTimeLanguage() +"\n" +document.movie1.GetQuickTimeConnectionSpeed() )
//alert(document.movie1.GetPluginStatus() +"\n" +document.movie1.GetTime() +"\n" +document.movie1.GetKioskMode() +"\n" +document.movie1.GetDuration() )
//alert(document.movie1.GetMovieSize() +"\n" +document.movie1.GetMaxBytesLoaded() +"\n" )
}
</script>
Ger "UNSPECIFIED ERROR"
Det måste väl gå att trigga det på något annat sätt ???
Vilken rad uppkommer felet på?
Line 81
car 2
<script language ="JavaScript">
function funGetInfo(){
[b]varMovieLength = document.movie1.GetDuration()[/b]
varMovieTimeScale = document.movie1.GetTimeScale()
alert(varMovieTimeScale +" - " +document.movie1.GetDuration())
varMovieLength = varMovieLength / varMovieTimeScale / 60
document.frmSaveData.req_end_tim.value = varMovieLength
//alert(document.movie1.GetEndTime() +"\n" +document.movie1.GetQuickTimeVersion() +"\n" +document.movie1.GetQuickTimeLanguage() +"\n" +document.movie1.GetQuickTimeConnectionSpeed() )
//alert(document.movie1.GetPluginStatus() +"\n" +document.movie1.GetTime() +"\n" +document.movie1.GetKioskMode() +"\n" +document.movie1.GetDuration() )
//alert(document.movie1.GetMovieSize() +"\n" +document.movie1.GetMaxBytesLoaded() +"\n" )
}
</script>
Lite drygt att ta reda på vilket som var rad 81. Men det ska vara den med fet stil ovan.
P pettsson Medlem sedan jan. 2002 1 122 inlägg Misstänker att detta, infogat på rätt rader kommer avhjälpa det hela: ";;;;;" :stud
I javascript avslutar man rader med ;
Har testat att lägga till alla ; men det hjälper inte.
Känns som att det tar någon sekund att ladda objektet och innan det är laddat så smäller skriptet. Men om man inte kan autoköra något med onLoad så vet jag inte hur jag ska kunna få det att fungera.... grrr....
Lös det åt mig så får ni det alternativa nobelpriset ;)
@nders Medlem sedan juni 2000 32 967 inlägg
Lite drygt att ta reda på vilket som var rad 81.
Använd en webbläsare med en riktig javascriptavlusare (ex. Firefox) så är det mycket lättare att finna javascriptfel.
Oki... ska testa. :)
Nu fick jag klippa och klistra lite.
P pettsson Medlem sedan jan. 2002 1 122 inlägg Går det inte att sätta en onLoad event på filmspelaren då? Den borde inte gå igång innan hela filmen är laddad
<EMBED onLoad="alert('test')" width="180" height="160"
autostart="true"
...
Verkar inte fungera. Hmmm... :)