/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Overordnet ramme henvisning
Fra : hjortkjaer


Dato : 04-01-03 17:39

Når man via google finder en bestemt side på min hjemmeside
kommer man kun ind på den enkelte side og rammerne udelades. Er
der en måde hvorpå man kan sikre, at siden automatisk loades i de
oprindelige rammer?

Christian Hjortkjær

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Knud Gert Ellentoft (04-01-2003)
Kommentar
Fra : Knud Gert Ellentoft


Dato : 04-01-03 18:38

hjortkjaer <Hjortkjaer@post.com> skrev :

>Når man via google finder en bestemt side på min hjemmeside
>kommer man kun ind på den enkelte side og rammerne udelades. Er
>der en måde hvorpå man kan sikre, at siden automatisk loades i de
>oprindelige rammer?

Nej og det er en af de største ulemper ved frames.

Se f.eks. tråden frames eller ikke.

Du kan indsætte et script på siden, som får siden til åbne i dit
framesæt, men man vil altid havne på indexsiden og det er jo ikke
særlig smart.

--
Knud - http://home13.inet.tele.dk/smedpark/
Når der svares på et indlæg, svar venligst under det citerede og
skær venligst det væk, du ikke svarer på, ellers ryger du i killfiltret.
Svar kun i nyhedsgruppen - tak! E-mails besvares ikke.

Lasse Reichstein Nie~ (04-01-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 04-01-03 19:26

hjortkjaer <Hjortkjaer@post.com> writes:

> Når man via google finder en bestemt side på min hjemmeside
> kommer man kun ind på den enkelte side og rammerne udelades.

Det er en af grundene til at mange undlader at bruge rammer.

> Er der en måde hvorpå man kan sikre, at siden automatisk loades i de
> oprindelige rammer?

Måske. Hvis man kan vide hvad de oprindelige rammer er ...

Hvis der er to rammer normalt, som begge kan ændre indhold, så
er det umuligt at vide hvad der skal være i den anden ramme.

For at genetablere rammerne kan du fx bruge javascript
(alternativer kræver at serveren kan se at filen hentes uden rammen,
og derfor sender rammefilen istedet ... jeg ved ikke præcist hvordan
det skulle laves, men nogle cookies var en mulighed).

Med javascript (jeg sætter followups til
dk.edb.internet.webdesign.clientside) kan du tjekke om din side vises i
en ramme, og hvilken ramme den er i. Hvis det ikke er den rigtige, så
kan man skifte til rammesiden.

Eksempelkode:

<script type="text/javascript">
if (self == top) { // ej i ramme
document.location.href="http://server.dk/rammefil.html";
}
</script>

Det er ikke nok til at sørge for at den side man kommer fra, bliver
vist i den rigtige ramme. Man kan så snyde og sende information om
hvilken side det er, med til rammesiden. I stedet for at hente
"rammefil.html" kan man fx hente
"rammefil.html?venstre=http://server.dk/venstre.html". Så kan
rammesiden selv sætte venstre-rammmen til at pege på den rigtige
side.

Man kan få fat i URLen fra og med spørgsmålstegnet som
document.location.search
så rammesiden kan fx bruge et script som

<script type="text/javascript">
function init() {
if (document.location.search != "") {
var arr = document.location.search.split(/[?=]/);
self.frames[arr[1]].document.location.href=arr[2];
}
}
</script>

og kald functionen fra onload på frameset-tagget:
<frameset ... onload="init()">

(med forbehold for tyrkfejl, så virker det så vidt jeg kan se endda i
NS4 :)

Håber det hjælper.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

hjortkjaer (04-01-2003)
Kommentar
Fra : hjortkjaer


Dato : 04-01-03 20:19

> For at genetablere rammerne kan du fx bruge javascript
> (alternativer kræver at serveren kan se at filen hentes uden rammen,
> og derfor sender rammefilen istedet ... jeg ved ikke præcist hvordan
> det skulle laves, men nogle cookies var en mulighed).
>
> Med javascript (jeg sætter followups til
> dk.edb.internet.webdesign.clientside) kan du tjekke om din side vises i
> en ramme, og hvilken ramme den er i. Hvis det ikke er den rigtige, så
> kan man skifte til rammesiden.
>
> Eksempelkode:
>
> <script type="text/javascript">
> if (self == top) { // ej i ramme
> document.location.href="http://server.dk/rammefil.html";
> }
> </script>
>

Ok tak for den meget fyldestgørende beskrivelse, som nok var lige lovlig
fyldestgørende til at jeg forstod særlig meget af det. Måske jeg kan
specificere min situation lidt:
Jeg har en side, hvor "bannerrammen" for oven og "menurammen" til venstre
ALTID er den samme. Kun "Indholdsrammen" skifter. Det er fint nok med et
javascript (det forstår jeg mig lidt på), men kan ovennævnte så bruges,
eller hvad skal der til?

Christian

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Joachim Cohn Jacobse~ (04-01-2003)
Kommentar
Fra : Joachim Cohn Jacobse~


Dato : 04-01-03 20:39

hjortkjaer wrote in dk.edb.internet.webdesign.html:
> Ok tak for den meget fyldestgørende beskrivelse, som nok var lige lovlig
> fyldestgørende til at jeg forstod særlig meget af det. Måske jeg kan
> specificere min situation lidt:
> Jeg har en side, hvor "bannerrammen" for oven og "menurammen" til
venstre
> ALTID er den samme. Kun "Indholdsrammen" skifter. Det er fint nok med et
> javascript (det forstår jeg mig lidt på), men kan ovennævnte så bruges,
> eller hvad skal der til?

Dit problem kan rigtigt nok løses med JavaScript. Du kan finde en
beskrivelse af fremgangsmåden på http://www.html.dk/artikler/00019/

Jeg vil dog tilslutte mig Knuds kritik af brugen af frames. Du bør
overveje om du kan etablere en anden løsning, evt. ved brug af SSI:
http://www.html.dk/tutorials/ssi/

Venlig hilsen Joachim

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

hjortkjaer (18-01-2003)
Kommentar
Fra : hjortkjaer


Dato : 18-01-03 18:27

> Jeg vil dog tilslutte mig Knuds kritik af brugen af frames. Du bør
> overveje om du kan etablere en anden løsning, evt. ved brug af SSI:
> http://www.html.dk/tutorials/ssi/
>
> Venlig hilsen Joachim

Ok, nu har jeg endelig fået læst dne igennem. Det lyder jo godt, men jeg
forstår ikke hvordan det virker til at "klistre" min banner på øverst og min
menu på siden af hver side. Kan det lade sig gøre?

Christian

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Knud Gert Ellentoft (18-01-2003)
Kommentar
Fra : Knud Gert Ellentoft


Dato : 18-01-03 20:27

hjortkjaer <Hjortkjaer@post.com> skrev :

>Ok, nu har jeg endelig fået læst dne igennem. Det lyder jo godt, men jeg
>forstår ikke hvordan det virker til at "klistre" min banner på øverst og min
>menu på siden af hver side.

Prøv at kig på http://html-faq.dk/2003.asp

--
Knud - http://home13.inet.tele.dk/smedpark/
Når der svares på et indlæg, svar venligst under det citerede og
skær venligst det væk, du ikke svarer på, ellers ryger du i killfiltret.
Svar kun i nyhedsgruppen - tak! E-mails besvares ikke.

Lasse Reichstein Nie~ (04-01-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 04-01-03 21:30

hjortkjaer <Hjortkjaer@post.com> writes:

> Ok tak for den meget fyldestgørende beskrivelse, som nok var lige lovlig
> fyldestgørende til at jeg forstod særlig meget af det.

Ups :)

> Måske jeg kan specificere min situation lidt:

> Jeg har en side, hvor "bannerrammen" for oven og "menurammen" til venstre
> ALTID er den samme. Kun "Indholdsrammen" skifter.

Det er godt, så ved du hvilke sider der skal være i de andre rammer.

> Det er fint nok med et javascript (det forstår jeg mig lidt på), men
> kan ovennævnte så bruges, eller hvad skal der til?

Det burde virke, og man behøver ikke engang sige hvilken ramme siden
skal ende i (det er jo altid den samme). Altså, skrevet helt ud:

På siden der skal være i ramme tilføjes (hvis rammefile hedder rammefil.html):

<script type="text/javascript">
if (self == top) { // ej i ramme
document.location.href =
"http://server.dk/rammefil.html?"+document.location.href;
}
</script>

(Siden siger: Hvis jeg ikke er i en ramme, så load rammesiden istedet,
og give min adresse med efter spørgsmålstegnet.)

I rammesiden tilføjes (hvis indholdsrammen hedder "main")

<script type="text/javascript">
function init() {
if (document.location.search != "") {
var ny=document.location.search.substr(1); //undtagen "?"
self.frames["main"].document.location.href=ny;
}
}
</script>

(Hvis der står noget efter spørgsmålstegnet, så brug det som adresse
på siden i hovedrammen ...)

og på frameset-tagget:

onload="init()"

(..., men først når siden er loadet færdig)

Man kunne sikkert bruge javascript til at undgå at loade en side først
og så skifte den bagefter. Denne metode virker dog bedre hvis
javascript er slået fra ... det kunne måske også klares med et
noscript-element. Dette javascript er kradset ned til lejligheden,
der kan sagtens være smartere måder at gøre det samme på.

Overvej at du måske gerne vil kontrollere at siderne der skal indrammes
faktisk er dine egne. Som det er skrevet her vil
http://server.dk/rammefil.html?http://www.megasex.com/
få en andens side til at se ud som om den er din. Du kan tjekke at
"ny"-variablen's path er til din server, eller at den ikke har en path,
eller måske noget helt tredje. Det er altid farligt at lade sin side blive
styret af input man ikke selv har styr over :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste