09. februar 2006 - 10:43Der er
19 kommentarer og 1 løsning
scrollTop og iframe
Jeg har en side hvor jeg dynamisk placerer et layer sådan at den altid bliver vist i toppen af siden, og det virker fint nok, men nu er mit problem at siden skal ligge i et iframe og så virker det ikke mere. Jeg kan godt regne ud hvorfor det ikke virker, det er selvfølge fordi den læser scollTop i forhold til iframe'et, som jo ikke ændre position. Men hvordan kan jeg aflæse scrollTop i forhold til iframe, har prøvet med documentTop = parent.document.body.scrollTop, men får en access denied?
Nu har jeg fået linien documentTop = parent.document.body.scrollTop til at virke, men problemet er nu at den ikke giver mig det ønskede resultat, den returner positionen i forhold til iframe, altså det samme som document.body.scrollTop.
Det jeg skal bruge er positionen i forhold til vinduet, altså den side hvor iframe'et ligger på.
Ellers går der rod i den, fordi IE uden DTD opfører sig meget anderledes end andre browsere. Således kan du ikke bruge CSS i IE uden - eller med en mangelfuld - DTD. Ligeledes er det altid document-elementet (html-elementet), der scroller ... ikke body-elementet. Derfor skal du hele tiden skrive forskellige koder til forskellige browsere, hvis du ikke bruger DTD'en ;o)
Jeg forstår ikke hvorfor du ikke kan forstå hvad jeg mener, jeg synes ellers jeg har forklaret/illustreret problemet rimelig godt.
Men nu har jeg fået det til at virke, jeg prøvede blot at oprette det lille eksempel jeg gav, og så virkede det sgu, men hvis jeg indsætter din DTD virker det ikke mere, så den DTD er forkert. Jeg bruger flg. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> men det virker også helt uden DTD linie.
Men hvis du kommer med et svar, får du de 60 point, du ledte mig på sporet/fik mig til at lave et eksempel som virker.
Det er muligt, du mener at have forklaret det tydeligt - men altså ikke så tydeligt, så andre har forstået det :)
Nej, du er stadig ikke på sporet af en løsning. Den DTD, du anvender disabler - som jeg skrev ovenfor - de vigtigste dele af CSS i IE ... og det er jo ikke smart. Eneste grund til, noget virker, er altså, at du har sørget for, CSS ikke virker i dokumentet.
I et dokument, der overholder CSS, er det som sagt ikke body-, men dokument-elementet, der scroller. Det troede _jeg_ tilgengæld var forklaret tydeligt nok ;o)
Med en fuld DTD, skal der således stå noget à la: document.documentElement.scrollTop
Ok Men jeg tror ikke jeg forstår det helt (et lille eksempel ville være godt), men hvis jeg forstår dig rigtig, så burde nedestående vel virke.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <body> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> <input type="hidden" value="xxxx" name="test" id="test"> <script> alert(document.test.scrollTop); </script> </body> </html>
den burde vel give mig forskellige værdier afhængig af hvor lang siden er scrollet. eller 'alert(document.getElementById("test").scrollTop);' burde virke, men det virker ikke.
Hvis du opretter det lille eksempel jeg skrev, altså en side1 og en side2 (uden DTD). Start side2.html den vil give dig 2 tal, flyt på scrollbaren tryk på 'F5' tasten nu returnerer linien 'alert(parent.document.body.scrollTop)' et tal størrer end 0.
Det er det spørgsmålet går ud på, altså at kunne aflæse parent.scrollTop fra en side i en iframe, det har jeg sådan set løst, bortset fra at det åbenbart ikke er den rigtige måde at gøre det på.
Så igen kan du lave et eksempel der svarer til mit eksempel, men sådan at det overholder det det skal?
- og læg mærke til, der - helt mod sædvane - ikke er andre, der har blandet sig i tråden. Mon ikke, det kan give dig et hint om, hvem der er noget galt med? ;o)
ja ja, men jeg har nu oprettet mange spørgsmål og der har folk nu ikke haft problemer med at forstå hvad jeg skriver, men ok jeg har også kigget på din profil, og du er ikke helt uden evner. Men jeg bruger så bare den løsning jeg selv er komme med, da den virker fint nok, selv om jeg nu har disabled css.
Jeg opretter et et andet spørgsmål inden for samme emne, og hvis du nu ikke forstår hvad jeg mener, så bare lad være med at kommentere/svare på det. :-)
- jamen, så er der jo ingen, der kommenterer/svarer. Så meget troede jeg stod klart efter denne tråd ... vi to er jo som bekendt de eneste, der har skrevet her ;o)
Hvad er du forresten ude på, vil du bare svine mig til så meget som mulig, jag sagde jo at du skulle lade være med at blande dig, hvis du ikke forstod eller kunne svare på spørgsmålet. Men det er måske på den her måde du plejer at behandle/hjælpe folk på, hvis du ikke kan forstå spørsmålet eller kender svaret, latterlig gører du dem i stedet for.
Og forøvrig fik jeg jo svar på det jeg spurgte om.
Men som sagt lad være med at gøre grin med folk fordi du ikke forstår dem, det kunne jo være at det var dig der var noget i vejen med. Jeg arbejder trods alt som udvikler/supporter, hvor det halve af min tid går med at besvare spørgsmål fra vores kunder, så jeg har ingen problemer med at kommunikere.
Men det har du åbenbart, når du lige synes at du ville svine mig til.
Synes godt om
Ny brugerNybegynder
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.