Avatar billede natsprinter Nybegynder
21. august 2006 - 00:22 Der er 23 kommentarer og
1 løsning

Automatisk opdatering af billede på webside

Jeg har lavet følgende lille kode:

function Start() {
document.spyCam.src = "grafik/webCam/ispy.jpg"
setTimeout("Start()", 1000)
}
Start();

Det virker rigtig fint i Explora, hvor jeg får opdateret mit billede (fra et webcam) hvert sekund.

I Mozilla/FierFox derimod, sker der ikke en dyd. Her skal jeg opdatere siden med F5, men der skiftes ikke noget billede automatisk. Jeg går ud fra at det skyldes sætningen:

document.spyCam.src = "grafik/webCam/ispy.jpg"

Men jeg ved det ikke?
Avatar billede mclemens Nybegynder
21. august 2006 - 00:43 #1
function Start() {
document.getElementById("spyCam").src = "grafik/webCam/ispy.jpg"
setTimeout("Start()", 1000)
}
Start();

...
<img src="grafik/webCam/ispy.jpg" id="spyCam">
Avatar billede mclemens Nybegynder
21. august 2006 - 00:46 #2
ups...(window.onload=function(){Start();}; // for at dom er klar)


function Start() {
document.getElementById("spyCam").src = "./icon.png"
setTimeout("Start()", 1000)
}
window.onload=function(){Start();};
...
<img src="grafik/webCam/ispy.jpg" id="spyCam">
Avatar billede mclemens Nybegynder
21. august 2006 - 00:47 #3
Du kan også bruge:

function Start() {
document.images.spyCam.src = "./icon.png"
setTimeout("Start()", 1000)
}
window.onload=function(){Start();};
...
<img src="grafik/webCam/ispy.jpg" id="spyCam">
Avatar billede mclemens Nybegynder
21. august 2006 - 00:47 #4
hov, ret lige ./icon.png til grafik/webCam/ispy.jpg
(det var et test billede som jeg brugte)
Avatar billede natsprinter Nybegynder
21. august 2006 - 00:53 #5
Hej mclemens

Nej - den metode gør ingen ændring - det vises stadig ikke i fierfox, men derimod i explora. Hvis du vil se mit grimme fjæs, kan du selc checke her:
http://www.guldhammer.dk/webcam.asp
Avatar billede mclemens Nybegynder
21. august 2006 - 01:02 #6
Uhm, kigger lige - det ser ikke så skidt ud ... Nu koder jeg også selv xhtml og ved at Firefox understøtter xhtml men at IE ikke gør ... ved ikke om vi er inde i et problem der - forstået på den måde at script sectionen ikke er escaped som cddata og evt. om det select ikke virker i xhtml men tester lige lidt ... En test mulighed kunne være at lægge det ud som her:

<script type="text/javascript" src="jsfilnavn.js></script>


og så en fil med navnet jsfilnavn.js:
function Start() {
document.getElementById("spyCam").src = "./icon.png"
setTimeout("Start()", 1000)
}
window.onload=function(){Start();};



... men tester også lige selv ...
Avatar billede mclemens Nybegynder
21. august 2006 - 01:02 #7
Hov, det virker her hos mig i firefox nu :o)
Avatar billede mclemens Nybegynder
21. august 2006 - 01:04 #8
Hmm, jeg havde åbnet to tabs vinduer og så virkede det
- men ikke med en tab åben, pudsigt - undskyld "hurra"´et ...
Avatar billede mclemens Nybegynder
21. august 2006 - 01:05 #9
Jeg gemmer lige din side med webcam'et på ned localt og tester ...
Avatar billede natsprinter Nybegynder
21. august 2006 - 01:07 #10
Ok - jeg store fjols. Jeg havde ikke brugt id attributten, men name attributten i min IMG-tag - men det virker nu - tak for det - point er på vej :-)
Avatar billede mclemens Nybegynder
21. august 2006 - 01:13 #11
Ok, det forklarer det med at den pludselig synes at virke :o)
Tak for pointene - og nej, du er ikke et fjols ... det er
bare sent og så kan man let overse sådan en smutter :o)


(IE forstår ikke hoved og hale på name og id og
har det document.all som du bruger med det her
der gør at man bliver forvirret document.spyCam.src
((http://www.eksperten.dk/spm/726722#rid6385765 )))


... Du kan hive fat i et element med:
document.getElementById("idsomerpaaelementet").src
document.getElementsByName("namesomerpaaelementet")[0].src


... og så er der document.getElementsByTagname("img")[5].src ... men den er lidt mere besværlig end de andre da den varierer afhængig af antallet af billeder og rækkefølgen af billeder m.v.)
Avatar billede mclemens Nybegynder
21. august 2006 - 01:17 #12
window.onload=function(){Start();};

kan forresten godt rettes tilbage til

Start();

det var mere hvis du havde script sectionen
oppe i head delen elelr gjorde det her:



<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="jsfilnavn.js></script>
</head>

og så slettede script sectionen nede i bunden på siden og lavde denne fil istedet:



jsfilnavn.js
function Start() {
document.getElementById("spyCam").src = "./icon.png"
setTimeout("Start()", 1000)
}
window.onload=function(){Start();};
Avatar billede mclemens Nybegynder
21. august 2006 - 01:18 #13
... Jeg overser også ting :o)
Avatar billede mclemens Nybegynder
21. august 2006 - 01:18 #14
- heri blandt den src jeg bliver ved med at bruge
(./icon.png -> grafik/webCam/ispy.jpg )
Avatar billede mclemens Nybegynder
21. august 2006 - 01:22 #15
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.guldhammer.dk%2Fwebcam.asp
ret "SCRIPT" til "script" og slet: language="JavaScript"

... så ordner type fejlen sig selv - ellers så prøv 21/08-2006 01:17:17 med
flytning af scriptet til ekstern fil og flytning og ændring af script tagget ... altså kun, hvis du ikke kan sove :D (når man har et w3c validator logo er det rart at den er "fejlfri" ...
Avatar billede natsprinter Nybegynder
21. august 2006 - 01:46 #16
Ja det er sent - og ja - valideringen skal være i orden - jeg er lige ved at lave den side - så jeg har ikke fået den valideret endnu ! - Tak for din hjælp.
Avatar billede mclemens Nybegynder
21. august 2006 - 09:31 #17
Velbekom, lige det sidste p.s.: Din side kører html og ikke xhtml - hvis
xhtml'en skal parses som xhtml skal den leveres med en bestem mimetype
se evt. dette link for asp content negotiation:

http://www.456bereastreet.com/archive/200408/content_negotiation/

... Men vent til du har rettet fejlen / fejlene - xhtml må iflg. reglerne ikke have en fejl (hvis det leveres som xhtml med rigtig mime-type vil 1 fejl give fejl på hele siden - det er så den ulempe der er ved "korrekt leveret" xhtml)

( http://www.eksperten.dk/spm/719030#rid6329210 )
Avatar billede mclemens Nybegynder
21. august 2006 - 09:40 #18
(må hellere sige, at jeg selv kører xhtml 1.1, så det
ikke lyder, som et angreb på det - at køre xhtml...)
Avatar billede olebole Juniormester
21. august 2006 - 14:59 #19
<ole>

mclemens >> Skriver du sådan:
    document.getElementById("idsomerpaaelementet").src
    document.getElementsByName("namesomerpaaelementet")[0].src

- falder browseren tilbage på HTML-parseren, da der er tale om HTML-DOM.
Hvis koden skal behandles af XML-parseren (ægte XHTML), skal du bruge 'setAttribute'  ;o)

/mvh
</bole>
Avatar billede mclemens Nybegynder
21. august 2006 - 15:19 #20
Ok, takker Ole :)
... så ved jeg hvorfor
man skal bruge setAttribute :o)
(  document.getElementById("spyCam").setAttribute("src","grafik/webCam/ispy.jpg");  )
Avatar billede roenving Novice
21. august 2006 - 16:53 #21
-- i øvrigt er brugen af function i funktionstildelingen normalt overflødig:

window.onload = Start;
Avatar billede mclemens Nybegynder
21. august 2006 - 17:14 #22
(21/08-2006 01:17:17 window.onload=function(){Start();};

kan forresten godt rettes tilbage til

Start();

det var mere hvis du havde script sectionen
oppe i head delen elelr gjorde det her: )
Avatar billede mclemens Nybegynder
21. august 2006 - 19:00 #23
Forstod hvad du mente nu Roenving :o)
Avatar billede mclemens Nybegynder
21. august 2006 - 19:02 #24
( var på vej ud af døren før og læste det som window.onload var unødvendigt,
men du mente jo function(){x();}; som du tydeligt skrev og viste :) )
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester