13. maj 2008 - 15:56Der er
23 kommentarer og 3 løsninger
appendChild IE image load
Hejsa allesammen
Jeg har en PHP fil der skal sættes ind som et billede på en side, det virker også fint nok i Firefox, men i Internet Explorer virker det som om filen ikke bliver loadet rigtigt, den udfører ikke scriptet som ligger i filen.
Jeg bruger document.createElement til at oprette billedet og appendChild til at sætte det ind på siden.
Kan der være noget med at billedet ikke bliver loadet ordenligt når det sættes ind i IE.
Jeg kan desværre ikke poste noget kode da det er et lukket system. Mit spørgsmål går også bare mere ud på om der er nogle kendte problemer med den slags i IE.
Hvis du har glemt at skrive noget, som du burde, eller har fået skrevet noget som du ikke burde. :)
Som Jokkejensen siger, kan vi ikke rigtig hjælpe uden kodeeksempler. Har du heller ikke mulighed for bare at gi' os den bid, som nok indeholder fejlen? Det kan sagtens lade sig gøre at lave crossbrowser i hvert fald.
Du kan også prøve - hvis billedet f.eks. har id="test" - at alerte:
alert(document.getElementById("test").outerHTML);
i Internet Explorer.
Du kan f.eks. bare gå op i adresselinjen og indsætte: java script:alert(document.getElementById("test").outerHTML);void(0) og trykke enter. Så skulle du gerne se, hvad der i virkeligheden er blevet indsat.
Ja, som jokkejensen foreslår, så prøv at sætte width og height og undersøg, om det så bliver kørt. Du kan jo også skjule det med display:none eller visibility:hidden i stedet.
jokkejensen: Jeg har prøvet at sætte billedet op i størrelse, der skete ikke nogen ændring.
Jeg tror muligt at problemet kan ligge i at jeg attacher funktionen der opretter billedet til window.onload via attachEvent/addEventListener. Kan det være noget med at IE ikke loader billedet ordentligt ind efter DOM'en er loadet færdig?
Kalder jeg filen direkte i internet explorer virker den fint nok. Og det hele virker fint i Firefox - både når jeg kalder den direkte og via mit script.
Hvis det ikke virker med DOM, virker det heller ikke med innerHTML ... ellers er der i hvertfald noget helt andet, der skal ændres =)
function myFunction(divet, urladressentilbillede) { var oImg = document.createElement("img"); document.getElementById(divet).appendChild(oImg); oImg.setAttribute("src", urladressentilbillede); }
Hvis det ikke virker, tror jeg, det må være på tide, du viser hele din præcise kode. Ellers bliver det vist bare en lang quiz. Én ting er i hvertfald helt sikkert: Hvis det, jeg viser ovenfor, ikke virker, så laver du fejl andre steder =)
Jeg har fundet ud af det. Problemet var at IE cachede billedet der blev loadet ind, så det kun blev loadet rigtigt første gange man så det, og ikke de efterfølgende gange hvor man opdaterede siden. Så tilføjede en Math.random() til linket, og nu virker det. Mange tak for hjælpen!
Hvis i alle tre lægger et svar får i nogle points som tak for jeres tid.
Du skal sætte client-cache når du sender den file gennem file.php. Den skal stå til public. Aner ikke hvordan i php. Men nu tvinger du folk til at downloade billederne ved hvert request.
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.