Avatar billede mik789 Nybegynder
14. november 2002 - 22:40 Der er 12 kommentarer og
2 løsninger

<div> som pseudo-iframe

Der er mange problemer med iframes (f.eks. at det er svært at lægge lag oven på dem). Derfor kan der være grund til at bruge en <div> med overflow:auto i stedet. Det fungerer også fint i IE. Men i NS 6 (har ikke testet 7'eren) har det bare den ulempe at man ikke kan gå til bogmærker i <div>'ens indhold. Det kan man i IE, der opfatter <div>'en som et pseudo-vindue.

Se et eksempel her: www.dahr.dk/Web/div_iframe.html

Ingen problemer i IE, men det fungerer ikke i NS. Er der nogle løsninger på det?
Avatar billede skg Nybegynder
14. november 2002 - 22:44 #1
du kan jo bare slå nogle folk ihjel ?
Avatar billede mik789 Nybegynder
14. november 2002 - 22:46 #2
andre, mindre drastiske løsninger???
Avatar billede ztyxx Nybegynder
14. november 2002 - 22:48 #3
øh, kan ikke helt se hvad du mener, men i NS 7 ser det fint nok ud, men kan ikke se de lag du taler om, heller ikke i IE
Avatar billede mik789 Nybegynder
14. november 2002 - 22:51 #4
styxx> Har nok ikke forklaret det ordentligt. Det er meningen at indholdet i laget (teksten) skal scrolle ned til de enkelte punkter når man klikker på linkene i venstre side. Sådan fungerer det også i min IE6 men ikke i NS6 (hvor der bare ikke sker noget, når man klikker på linkene).
Avatar billede pelkjaer Nybegynder
14. november 2002 - 23:07 #5
har du prøvet at tilføje et id til dine "<a name=""> ?
Avatar billede mik789 Nybegynder
14. november 2002 - 23:32 #6
pelkjaer> hvad mener du? hvad skulle det gøre godt for?
Avatar billede mik789 Nybegynder
14. november 2002 - 23:36 #7
hvis du mente <a id="top" name="top"> svarende til <a href="#top"> f.eks., så har jeg lige prøvet uden at det gjorde nogen forskel
Avatar billede pelkjaer Nybegynder
14. november 2002 - 23:47 #8
det var det jeg mente
Avatar billede skg Nybegynder
15. november 2002 - 02:06 #9
du kunne også begynde på noget grimt noget med at berenge hvor dine anchors er i forhold til toppen af elementet... meeeeeeen....

altså noget ala...

<html>

  <head>
  <title>hash</title>
  </head>
 
  <script>
  function goHash(h)
  {
    if(!document.all)
    {
      elm = document.getElementById((h.substring(h.indexOf('#')+1)));
      x=0;
      if(elm)
      {
        while(elm.tagName != 'DIV')
        {
          x+=elm.offsetTop
          elm=elm.offsetParent
        }
        elm.scrollTop=x
        return false;
      }
    }
    return true;
  }
  </script>
 
  <body>
 
 
  <a href="#vupti" onclick="return goHash(this.href)">vupti</a>
  <a href="#vuf" onclick="return goHash(this.href)">vuf</a>
  <a href="#hund" onclick="return goHash(this.href)">hund</a>
  <div id="box" style="width:250px;height:100px;overflow-y:scroll;">
  <br><br><br><br><br><br><br><br>
  <a name="vupti" id="vupti">vupti</a><br><br><br>
  <a name="vuf" id="vuf">vuf</a><br><br><br>
  <a name="hund" id="hund">hund</a><br><br><br>
  <br><br><br><br><br><br><br><br>
  </div>

</body>

</html>



men som du kan se er det en fucking grim løsning ;-P
Avatar billede mik789 Nybegynder
15. november 2002 - 08:46 #10
skq> grimt eller ej, hovedsagen er at det fungerer, og det gør det desværre ikke i NS6 - så det giver præcis samme situation som den simple anker løsning.
Avatar billede mik789 Nybegynder
15. november 2002 - 12:15 #11
skq> NS javascript konsol siger: "elm has no properties"

og det skyldes nok at DOM ikke accepterer en værdi for et <a> tag der mangler attributten "href". M.a.o. hvis jeg sætter elm til document.getElementById('vupti') [og 'vupti' er id for <a name="vupti" id="vupti"> er elm null, men hvis jeg gør 'vupti' til id for <a href="#vupti" id="vupti"> så har elm værdien: [sti].div_iframe.html#vupti, altså den fulde href. Så når elm ikke tilkendes nogen værdi første gang den erklæres, kommer scriptet ikke videre.

Mærkeligt nok kan systemet godt finde ud af elm's offsetTop - også når id'erne kun er sat i <a name=""> tag'ene, som de er af dig ovenfor. Hvis jeg f.eks. siger:

document.write (document.getElementById('vupti').offsetTop+'<br>');
document.write (document.getElementById('vuf').offsetTop+'<br>');
document.write (document.getElementById('hund').offsetTop+'<br>');

så skrives de korrekte værdier.

???
Avatar billede mik789 Nybegynder
15. november 2002 - 13:44 #12
og i øvrigt er scrollTop vist ikke understøttet af NS. De øvrige scroll metoder, f.eks. scrollBy() og scrollTo() forudsætter at vi har at gøre med et window objekt og kan altså ikke bruges af en <div>, (men gerne af en <iframe>). Og det er jo egentlig ulogisk, når man kan få en <div> til at opføre sig som et window med scrolling, scrollbar og det hele. Scroll metoderne burde følge alle elementer der reagerer på overflow:scroll/auto
Avatar billede mik789 Nybegynder
18. november 2002 - 06:31 #13
skq> jeg kunne ikke bruge din kode, men jeg lærte noget af den ;-) så læg et svar så deler vi pointene.
Avatar billede mik789 Nybegynder
02. december 2002 - 06:19 #14
øhh nåja, det har du allerede....
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