Avatar billede rask2 Nybegynder
07. oktober 2008 - 21:05 Der er 15 kommentarer og
2 løsninger

Drop-down i frame

Hej eksperter

Jeg er ved at lave en hjemmeside hvor jeg har lavet tre frames. Øverst har jeg en ROW (Frame1) og nedenunder har jeg to COL hvor den ene er ment som en menu (Frame2). I denne menu har jeg lavet i drop-down menu. Ud fra valget i denne drop-down menu vil jeg ændre indholdet i den sidste frame (Frame3).

Jeg ved ikke helt hvordan jeg gør for at ændre indholdet i en anden frame. jeg er kommet dertil hvor jeg kan ændre indholdet i samme frame som drop-down menuen. Er der nogen der kan hjælpe?

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">

<html>

<head>
<title>XXX</title>
</head>

<body style = "background-color:green;">

<form method="post" style="background-color:green" action= "C:\Documents and Settings\HTML\test\"+value+".asp">
    <select size="1" onchange="window.open(this.options[this.selectedIndex].value,'_self')">
        <option selected="selected">    </option>
        <option value="1.htm">1</option>
        <option value="2.htm">2</option>
        <option value="3.htm">3</option>
        <option value="4.htm">4</option>
    </select>
</form>
</body>
</html>
Avatar billede olebole Juniormester
07. oktober 2008 - 21:21 #1
<ole>

Under XHTML 1.0 Strict kan du slet ikke bruge (i)frames. (i)frames har ikke været en del af markup-standarder de seneste 9 år  =)

Derudover disabler din XML-deklaration:
    <?xml version="1.0" encoding="iso-8859-1"?>

- de væsentligste dele af CSS i IE 6.

Desuden er 'iso-8859-1' deprecated i JavaScript (og har været det i mange år), så det tegnsæt er ikke velegnet, når der skal sendes requests via JavaScript.

Til slut er XHTML slet ikke understøttet på WWW - og det vil formodentlig vare en hel del år endnu, før det bliver. Tag dig ikke af, det ikke fremgår af tutorials på WWW - deres forfattere har formodentlig aldrig selv skrevet et fungerende XHTML-dokument. Læs evt:
    http://www.eksperten.dk/artikler/537
    http://www.eksperten.dk/artikler/538

/mvh
</bole>
Avatar billede olebole Juniormester
07. oktober 2008 - 21:23 #2
PS: - og mon så en sti som denne kan bruges på WWW:
    C:\Documents and Settings\HTML\test\"+value+".asp  ?

Mon ikke det skal være en sti til et sted på WWW - i stedet for en lokal sti til et sted på din egen PC?  ;o)
Avatar billede Slettet bruger
07. oktober 2008 - 21:33 #3
Ser vi bort fra alle de nævnte småfejl (!), så er svaret på dit spørgsmål enkelt:

Du skal i din hovedside, hvori du har frame-koderne, give dem et navn. Særligt den, der skal udskiftes, når der klikkes på et link. Fx:

      <frame src="side1.html" name="indhold">

De links, der skal åbne en ny side i denne frame (som her hedder "indhold"), skal blot indeholde target-atributten:

      <a href="side2.html" target="indhold">Link til side 2</a>

side2.html, som linket henviser til, åbnes så i framen "indhold".

  // Steeven
Avatar billede olebole Juniormester
07. oktober 2008 - 22:07 #4
steeven >> Hvad mener du med 'småfejl'? Fejl findes ikke mere substantielle indenfor webkode! Hvis dette er 'småfejl' ... gad vide, hvordan man så mener en fejl ser ud ...?!!??!!!  :D
Avatar billede olebole Juniormester
07. oktober 2008 - 22:14 #5
At bruge <iframe></iframe> under XHTML svarer til at bruge <tjulahej></tjulahej> under HTML (= det giver _absolut_ ingen mening!). (I)frames har ikke været en del af en markup-standard i 9 år! Det er da en yderst seriøs fejl!

Aktivt at disable de vigtigste dele af CSS i et dokument, må da anses for at være en ekstremt alvorlig fejl!

At bruge deprecatede metoder og/eller tegnsæt er vel en ekstremt seriøs fejl!

At bruge en markup-version, man ikke forstår, må vel være at regne som en ekstremt seriøs fejl!

At se bort fra, at en bruger begår den slags fejl, ville det være en ekstremt seriøs fejl, ikke at gøre ham opmærksom på! Det kan vist kun kaldes en bjørnetjeneste!
Avatar billede Slettet bruger
07. oktober 2008 - 23:27 #6
Undskyld, undskyld!

Det var egentlig ironisk ment - jeg er ked af, at have formuleret mig uklart. Man skal passe på med at bruge dybere meninger og ironi, når kommunikationen foregår på skrift.(Udråbstegnet er vist malplaceret)

Du nævnte netop så mange fejl i koden, at det helt overskyggede det egentlige spørgsmål og overflødiggjorde en løsning dertil. Det var det jeg ønskede at kommentere.


Jeg skammer mig over min mangel på evne til at kommunikere korrekt på skrift. Lad os være gode venner igen.

  // Steeven
Avatar billede olebole Juniormester
07. oktober 2008 - 23:31 #7
Jamen - jamen ... vi er da slet ikke blevet uvenner!  ;o)

Det _er_ problematisk at kommunikere via skrift ... hvorfor skulle lovtekster ellers være så oversnørklede? Jeg kender det kun alt for godt ... don't worry  ;o)
Avatar billede Slettet bruger
07. oktober 2008 - 23:39 #8
Tak for det; nu er jeg lettet...


Og til rask2:

Som det fremgår, bør du ikke fortsætte, før "småfejlene" (ironi igen) er rettet! Det vil ikke virke for dig.

Og jeg vil desuden, ligesom Olebole beskrev det, fraråde dig at bruge frames som basis for hele websitet. Det giver også problemer med hensyn til søgemaskiner og ikke-entydige URL'er for forskellige sider osv.
Det er nok bedst med en anden løsning som menu. Hvis webstedet ikke er for stort og uoverskueligt, placerer du jo blot din rullemenu på hver side. Så kan du netop også tilpasse den til den enkelte side (fx virker det bedst, hvis et link til en bestemt side er inaktivt, når man er på siden)

  // Steeven
Avatar billede rask2 Nybegynder
08. oktober 2008 - 20:43 #9
Hej olebole og steeven og tak for jeres besvarelser.

Ang de fejl du skriver om olebole så er det fint at du gør opmærksom på dette, da jeg ikke var klar over det. Jeg tror jeg har klippet det fra en side hvor de anbefalede det.

Ang. stien til mit eget C: drev så er det altså bare mens jeg udvikler siden, og vil selvfølgelig blive ændret inden de uploades.

Det er første gang jeg har anvendt frames, men tak for tippet om ikke at opbygge hele websitet med frames. Kan evt. opbygge den med en <table> og så lave en frame i tabel-element (altså den del der skal opdateres) eller hvordan vil i foreslå at man undgår at opdatere hele sitet?

Ang. flg.

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">

, skal det bare slettes eller skal det erstattes med noget andet, og i så fald hvad?

/rask
Avatar billede Slettet bruger
08. oktober 2008 - 21:27 #10
Jeg er ikke sikker på, hvad du mener med at "opdatere" sitet ved brug af frames.

Men hvis du opretter en masse forskellige html-sider som menusiderne, så byg dem hellere op hver for sig med din rullemenu på hver enkelt side, i stedet for at bruge frames til at kalde siderne frem.

Du kan bruge frames til at hente fx sider med forskellige typer billeder ind i et område på en side, og det kan være ganske til det formål. Og dertil kan du lave en lille undermenu, som åbner siderne i en frame. Men undgå at lade vigtige sider med betydeligt indhold og tekst blive hentet ind i en frame.

  // Steeven
Avatar billede Slettet bruger
08. oktober 2008 - 21:40 #11
Undgå i det hele taget at bruge frames på en sådan måde, at besøgeren af webstedet tror han har skiftet til en ny side, når nyt indhold åbnes i en frame.

For brugere har det jo med at ville gemme adresse-URL'en til en smart / flot / relevant side i deres Favorit-boks i browseren, eller i en linksamling. Og det bliver problematisk:
Når du har en side opbygget med frames, så vil du opdage, at URL'en forbliver den samme, selvom en ny side åbnes i en frame. Det er netop URL'en til den html-side, hvori du har skrevet framekoderne, der vises i adresselinjen, og denne er den samme ligegyldigt frame'nes indhold.
Når brugeren så åbner det link, han tidligere har gemt, så er det noget helt andet indhold han får frem.

  // Steeven
Avatar billede olebole Juniormester
09. oktober 2008 - 02:33 #12
Jeg skriver som oftest HTML 4.01 Strict og der bruger man flg. DTD:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Avatar billede danco Nybegynder
16. oktober 2008 - 23:00 #13
Er det mig der har misforstået hele spørgsmålet eller er det ikke bare et spørgsmål om at bruge en ganske simpel <base target="indhold"> i HTML sidens head sektion?

Alternativt skal du ud i at bruge target til hver <a href> script, og det bliver man sku trist af når der er mange sider.

Med Base target kan du nøjes med at bruge target hvis du skal sende til et andet frame.
Avatar billede olebole Juniormester
17. oktober 2008 - 09:30 #14
danco >> Om du har misforstået spørgsmålet: Både ja og nej  =)

Spørgsmålet giver i udgangspunktet ikke mening, da (i)frames slet ikke kan bruges under den anvendte DTD (frames har ikke været del af W3C's standarder siden HTML 4.01 fra 1999). Da der idag ikke er fordele - men bunker af bagdele - ved brug af frames, har vi af hensyn til spørgeren forsøgt at 'pynte' lidt på hans kodevaner  ;o)

Derudover er det korrekt, man kan bruge 'base', men target er deprecated. Det er derfor kun en mulighed, hvis man skriver mod tussegamle standarder - eller en af de 'løse' flavours, som fra W3C kun er ment som korte overgangsløsninger
Avatar billede rask2 Nybegynder
23. oktober 2008 - 21:15 #15
til olebole: <Jeg er ikke sikker på, hvad du mener med at "opdatere" sitet ved brug af frames. 08/10-2008 21:27:54>

Det jeg mener det er, at jeg ikke vil loade hele siden hver gang brugerenn trykker på et menu punkt. Derfor ville jeg godt bruge frames. På pågældende side, har det ikke nogen betydning med URL adressen, men jeg kan se hvad du mener...

Jeg siger mange tak for hjælpen.

Steven og olebole smid et svar...
Avatar billede Slettet bruger
23. oktober 2008 - 22:02 #16
Her er et svar. Tak for det.

  // Steeven

PS.: Det var mig, der skrev, at jeg ikke var sikker på, hvad du mente ;)
Hvis du ikke er interesseret i at loade hele siden hver gang, der klikkes på et menupunkt, er det så fordi, din menu er overfyldt med billeder mm., så det tager lang tid at åbne siden? Ellers er der jo ikke noget problem i at lade en ny side blive åbnet hver gang.
Hvis du ikke behøver hverken entydig URL for hver enkelt side eller god søgemaskineoptimering, så kan du vel godt bruge frames. Men husk på det, Olebole har pointeret; frames er meget forældet, og dermed ikke anbefalelsesværdigt.
Avatar billede olebole Juniormester
23. oktober 2008 - 22:07 #17
Frames giver idag kun mening i forbindelse med 56K-modems, så der er næppe nogen af dine brugere, der har nogen gavn af frames. I betragtning af alle de ulemper, der er med frames, kan jeg kun se grunde til at undgå dem  =)
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