Avatar billede olufsand Nybegynder
25. oktober 2001 - 09:19 Der er 8 kommentarer og
1 løsning

Layer og en anden fil

Er det muligt at oprette et LAYER, og derefter indsætte et dokument der indeholder frames i dette LAYER, som man så kan tænde og slukke for. Det skal kunne virke i alle browsere.
Avatar billede goz Nybegynder
25. oktober 2001 - 09:32 #1
Nej. Du kan ikke gøre det direkte, men du kan løse problemet ved at resize dine frames.

Her er et lille eksempel med 4 filer

default.htm
-----------
<HTML>
  <TITLE>Sizing Framesets</TITLE>
  <SCRIPT>
    var hidden = false
    function buildFrameset(state) {     
      var str = \"<TITLE>Sizing Framesets</TITLE>\"
      if (frames[\"main\"].frames.length!=0)
        bodyLoc =  frames[\"main\"].frames[\"body\"].location.href
      else
        bodyLoc =  frames[\"main\"].location.href
      if (state) {
        str+=\"<FRAMESET COLS=\'200,*\'>\"
        str+=\"<FRAME SRC=\'menu.htm\'>\"
        str+=\"<FRAME SRC=\'\"+bodyLoc+\"\' name=body>\"
        str+=\"</FRAMESET>\"
        frames[\"main\"].document.open()
        frames[\"main\"].document.write(str)
        frames[\"main\"].document.close()
      } else
        frames[\"main\"].location.href =  bodyLoc
      hidden = !(hidden)
    }

    function testCheckbox() {
      // Initialize state
      hidden = (frames[\"main\"].frames.length!=0)
      // Make sure frame exists
      if (frames[\"header\"].document.forms[\"f1\"]!=null)     
        frames[\"header\"].document.forms[\"f1\"].elements[\"c1\"].checked = hidden
    }
  </SCRIPT>
    <FRAMESET ROWS=\'150,*\' ONLOAD=\"testCheckbox()\">
      <FRAME SRC=\'header.htm\' name=header>
      <FRAME SRC=\'main.htm\' NAME=main>
  </FRAMESET>

</HTML>

header.htm
----------
<HTML>
  <BASE TARGET=\"_top\">

  <SCRIPT>
    <!--
    var p = parent.parent
    function updateFrames(el) {
      p.buildFrameset(el.checked)
    }
    // -->
  </SCRIPT>

  <BODY BGCOLOR=white>
    <FORM NAME=f1>
      Menu: <INPUT TYPE=\"checkbox\" ONCLICK=\"updateFrames(this)\" NAME=c1 ID=update CHECKED></FONT>
    </FORM>
  </BODY>
</HTML>


main.htm
--------
<HTML>
<BODY BGCOLOR=\"white\">
bla bla bla
</BODY>
</HTML>


menu.htm
--------
<HTML>
  <BODY BGCOLOR=\"white\">
menu stuff
<input type=textarea>
  </BODY>
</HTML>


mvh goz
Avatar billede olufsand Nybegynder
25. oktober 2001 - 09:41 #2
Det er ikke lige det jeg søger, selvom det er tæt på. Det SKAL være et LAYER, som kan flyttes rundt i den frame den er oprettet. Er det så muligt at \"frame\"-dele et LAYER ?
Avatar billede goz Nybegynder
25. oktober 2001 - 09:50 #3
Du kan med en ie <IFRAME> men det bliver det jo ikke cross-browser af ...
Avatar billede bamzen Nybegynder
25. oktober 2001 - 10:07 #4
Du er nød til at bruge 1 hoved lag, og så et lag pr \"frame\" altså skabe en virtuel frame.... Det igen hvis det altså skal være crossbrowser....

Normalt bruger jeg Dan Steinmans DynAPI til hjælp... det findes på http://www.dansteinman.com/dynduo med udførlige instruktioner hvordan det bruges

så ville jeg lave et hovedlag og x underlag som eksempelvis kunne se sådan ud

<DIV ID=mainDiv>
<DIV ID=sub1Div>
</DIV>
<DIV ID=sub2Div>

</DIV>
<DIV ID=sub3Div>
</DIV>

</DIV>

Så kan du altid indbygge en scroll funktion i dine indholdslag,,, det kan du også finde dokumenteret på dan steinmans side...

Endda er det muligt at skifte indholdet af et lag ud med en ekstern fil, igen check siden ud... der er mange gode funktioner....
Avatar billede olufsand Nybegynder
25. oktober 2001 - 10:13 #5
Det er lige den funktion jeg ønsker, TAK
Avatar billede pelkjaer Nybegynder
25. oktober 2001 - 10:13 #6
Med Olebole\'s og Geeeer\'s scroller kan du loade et eksternt html dokument ind i et div.

http://www.olebole.f2s.com/scroller/
Avatar billede bamzen Nybegynder
25. oktober 2001 - 10:17 #7
takker da for point og sån,, check også dynapi v 2, og http://www.dhtmlcentral.com

Dan Steinmans er det nemmeste at implementere og bruge,,, men dhtmlcentral er nok den mest crossplatform venlige
Avatar billede olebole Juniormester
25. oktober 2001 - 10:30 #8
<ole>
Denne her er tudenem at implementere, hvis du laver én pr. frame. Mon så ikke, du kan sætte \'overflow:auto\' eller \'overflow:scroll\' på dit content-lag...(?)
Der er én fejl - og det er, at du skal køre det script, der står på siden på onload af <iframe>\'en ....ikke på den måde, der står  ;o)
Denne løsning er X-browser fra NS4.X og IE4.X
/mvh
</bole>
Avatar billede olebole Juniormester
25. oktober 2001 - 10:31 #9
PS: kræver *alle* filer, der skal loades på siden, ligger under samme domæne, som dit \'frameset\' :)
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