Avatar billede picard Nybegynder
18. november 2000 - 14:40 Der er 6 kommentarer og
5 løsninger

Frames vs. Tables

Hejsa.
Jeg er ved at lave en hjemmeside for et lille firma.

Jeg vil gerne have en navigationsbar/liste ude i venstre side af skærmen, der skal være til stede hele tiden uanset, hvilket link på siden der trykkes på.
Hvis jeg ikke vil bruge frames betyder det jo at være eneste side på hjemmesiden skal indeholde navigationsbaren. Bruger jeg frames udelukker jeg en masse mennekser for at bruge siden fornuftigt.

Tables giver redundans, men er det bedre end at bruge frames ?

Er der andre metoder der er mere fornuftige ?
Giver dette overhovedet mening for jer HTML - eksperter ?

Christian
Avatar billede hyperactive Nybegynder
18. november 2000 - 14:50 #1
Jeg ville klart bruge frames til dette formål. Langt de fleste anvendte browsere i dag er i stand til at håndtere frames.
Avatar billede janegil Nybegynder
18. november 2000 - 14:50 #2
(Ayatollahene i W3C vil nok at du skal bruke DIV i stedet for både tabeller og frames)

Tabeller med redundans er mye enkelre for brukeren å forholde seg til, han kan få styr på bokbmerker og sånt. Men redundansen er vanskelig å administrere for hånd for en webmaster. det krever nok i praksis at du bruker Cold Fusion, ASP e.l.

En fordel med frames, er at du kan ha lenkene synlig hele tiden, selv om brukeren har skrollet seg langt nedover i teksten. Tror du kan oppnå det samme med DIV\'er som har CSS \"position: fixed\", det er bare tvilsomt om det finnes browsere der det virker...
Avatar billede geeeet Nybegynder
18. november 2000 - 14:52 #3
Jeg ville nok vælge tabel-metoden og skrive menu ud dynamisk på siderne, sådan at du kan have hele din menu i en .js-fil og derfor stadig kan nøjes med at skulle rette et sted.

/Geeeet
Avatar billede michaelmyers Nybegynder
18. november 2000 - 14:59 #4
Det bedste valg (efter min mening) ville være tables. Du kan løse dit problem på 2 måder: SSI (server side include) eller PHP.

1. SSI
Hvis serveren siden er hostet på understøtter SSI kunne du bruge en simple SSI kommando:

<!-- #INCLUDE TYPE=\"URL\" --!>

TYPE er enten
FILE    giver filnavnet relativt til den aktuelle mappe
VIRTUAL  giver filnavnet relativt til severen

VIRTUAL er nok den bedste at bruge....

URL siger sig selv, nemlig adressen på din navigationsbar.

eks:
<!-- #INCLUDE VIRTUAL=\"navigation.inkl\" --!>

I dette tilfælde indeholder navigation.inkl altså dit navigations panel og i stedet for at skrive det over alt indsætter du bare SSI kommandoen.

eks:
Du har 2 filer, index.html, info.html, i stedet for at skrive navigations kilden i begge filer skriver du den i en fil du kalder f.eks navigation.inkl (filnavnet er faktsik ligemeget) og derefter indsætter du den passende SSI kommando. Så mangler du kun at gøre en ting: nemlig at omdøbe din .html/.htm filer til .shtml for så ved serveren at den er igang med en fil der indeholder SSI kommandoer.


2. PHP
Hvis der er installeret PHP på din server kan du bruge den meget logiske funktion:

<?php
  include(\"URL\");
?>

URL er altså i dette tilfælde også lig med adressen på din navigations fil

eks:

<?php
  include(\"http://dinserver/mappe/navigation.html\");
?>

/////////// LOL ////////////

Michael Myers

Avatar billede stigc Nybegynder
18. november 2000 - 15:04 #5
Problemer med frames er ikke at nogen browser ikke understøtter disse. Det er overstået, og man må regne med at 99,9 % af ens beøsgende har en browser der kan fortolke frames......

Problemet ligge i søgemaskineren. Især dem der selv finder dig. De kan finde dine underframes, og dermed undgå dit frameset og hermed mister brugeren måske din menu som ligger i en anden frame!


\"Føj til foretrukne\" er også et problem, da man ikke kan bookmarke frames!

Det kan være besværet værd at lave tables, jeg gør det selv!


Hvis du bruger frames, så kan dette sørge for at brugeren ikke kommer ned i en underframe, udenom framsettet:

<script language=javascript>   
if (top.location == self.location)
{
top.location.href = \"ditIndexFil.htm\";
}
</script>
Avatar billede michaelmyers Nybegynder
18. november 2000 - 15:04 #6
Ups mangler lige en ekelt detalje:

Du kan også bruge JScript til det:

i din html kilde skiver du

<script language=\"JScript\" src=\"URL\" type=\"MIME-type\"></script>

URL = JScript fil der ender på .js

MIME-type = text/js det betyder at .js filer indeholder almindeligt text og der ikke skal startes noget ekstra program...

eks:

<script language=\"JScript\" src=\"http://dinserver/mappe/navigation.js\" type=\"text/js\"></script>

///////////// LOL ///////////

Denne metode kræver dog at du har kendeskab til JScript (JavaScript hos NS)

document.write(text);

//////////// LOL ////////////

Michael Myers
Avatar billede michaelmyers Nybegynder
18. november 2000 - 15:09 #7
Nu hvor jeg lige kigger lidt på det jeg har skrevet kan jeg lige komme med et par rettelser:

MIME-type i JScript løsningen behøves nok ikke at være med....

I SSI-modellen er kommando formlen

<!-- et eller andet -->

jeg skrev:

<!-- et eller andet --!>

det sidste udråbs tegn har ikke noget med det at gøre men jeg synes bar at det ligesom danner symetri ;-)

///////////// LOL ////////////

Michael Myers
Avatar billede michaelmyers Nybegynder
18. november 2000 - 15:20 #8
Fejl igen.........f**k

Jeg skrev at hvis man ville bruge JScript-modellen kunne man indætte en type=\"MIME-type\"

den MIMI-type sagde jeg skulle være text/js, men egentlig skal den nok være text/javascript

/////////////// LOL //////////////

Michael Myers
Avatar billede picard Nybegynder
19. november 2000 - 09:54 #9
Tak for svarerne !
Avatar billede picard Nybegynder
19. november 2000 - 10:00 #10
Tak for svarerne. Jeg har valgt at give alle nogle point at gå hjem med :o)
Jeg kan se at det webhotel, firmaet har købt sig ind hos, ikke tilbyder asp,php ssi. Så jeg tror sq frames bliver løsningen !

Avatar billede janegil Nybegynder
19. november 2000 - 12:26 #11
CLIENT SIDE INCLUDE

Jepp. Javascript er jo en måte å få inkludert en felles kode i mange sider med er mekanisme på klienten. Bare synd at det ikke finnes noen standard måte å inkludere rein HTML på klienten, javascript er tross alt en omvei for å få skrevet en meny?

(<OBJECT> kan klare en slags client side include av HTML. Men det virker ikke i Netscape 4.75)
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