Avatar billede tipsen Nybegynder
23. februar 2002 - 19:38 Der er 8 kommentarer og
1 løsning

hvis underside kaldes, redirect til framesæt!

Aktuelt website: www.TommyIpsen.dk

Sitet er bygget op med 2 frames og da det ligger på freepaq's gratis server, kommer der desuden en ekstra frame med freepaq's reklamebar!

Jeg kunne godt tænke mig, at hvis man gik direkte ind på en underside (eks via en søgemaskine!) ville et javascript kalde hovedsiden (kommer til at hedde index.php) med et ekstra argument som fortalte hvilken side der skulle vises i højre frame!

Dvs følgende funktionalitet ønskes:

1. Bruger går til vilkårlig underside
2. javascriptet opdager, at siden ikke er i det sædvanlige frameset og redirecter til eks. index.php?id=12
3. index.php sørger for resten

og det er så punkt 2 jeg mangler hjælp til!

Hvilke metoder og objekter er der til rådighed i javascript og hvilke browserbegrænsninger er der? Jeg vil gerne have noget som fungerer generelt og eks. ikke kun i IE!

--tipsen--

PS: Tilsvarende spørgsmål må være stillet tidligere, men jeg ved ikke rigtigt hvad jeg skal søge efter!
Avatar billede podata Nybegynder
23. februar 2002 - 19:51 #1
Dette script gør hvad du efterspørger, placeres i head på de sider hvor det er aktuelt, skift index.htm ud med den ønskede url.

<script LANGUAGE="JavaScript">
<!--
function Rebuild() {
if (parent != null && parent != self) {}
else {window.document.location = "index.htm"}
}

Rebuild();
// -->
</script>
Avatar billede tipsen Nybegynder
24. februar 2002 - 00:09 #2
podata: Der ser brugbart ud, men har rejst et par nye spørgsmål:

Er der nogen grund til ikke at skrive funktionen som:

function Rebuild() {
if (parent == null || parent == self) {
  window.document.location = "index.htm"
}

og hvad ligger der konkret i variablene/egenskaberne parent, null og self?

--tipsen--
Avatar billede podata Nybegynder
24. februar 2002 - 00:29 #3
Det kan sikkert gøres på flere (og måske simplere måder) men jeg er ikke selv en Script-ørn og dette script har jeg fået fat i på en  side om JavaScript (vistnok med et link her fra Eksperten) og det virker fint for mig. :)
Avatar billede olebole Juniormester
24. februar 2002 - 00:31 #4
<ole>
Ingen af delene kan det, du skal bruge. Du kan skrive en let genkendelig variabel i dit frameset i index.php ... f.eks:
var hullaballullahej = true;

Så skriver du i din <head> i underfilen:

var id = 12;
if (!parent.hullaballullahej) location.href = "index.php"+id;

document.location er deprecated ... det hedder window.location, men da window er underforstået, kan du blot skrive location og stadig overholde W3C's rekommendation
/mvh
</bole>
Avatar billede olebole Juniormester
24. februar 2002 - 00:33 #5
ups ... selvfølgelig:

var id = 12;
if (!parent.hullaballullahej) location.href = "index.php?id="+id;

...sorry  ;o)
/mvh
Avatar billede tipsen Nybegynder
24. februar 2002 - 01:10 #6
olebole: Dejligt med en mere korrekt løsning - hvordan er den understøttet af de forskellige browsere - kan jeg regne med det fungerer generelt?
Avatar billede olebole Juniormester
24. februar 2002 - 01:53 #7
Yups .... den skulle ingen kunne brokke sig over - nok bortset fra NS2 og IE3  ;o)
/mvh
Avatar billede emileej Nybegynder
24. februar 2002 - 15:04 #8
>>tipsen
Jeg bruger selv samme metode på eej.dk og har brugt den længe - jeg har ikke oplevet en computer, det ikke har virket på...

E-)mil
http://mfp.eej.dk
http://eej.dk
Avatar billede tipsen Nybegynder
24. februar 2002 - 15:08 #9
OK - det ser ud til at fungere - tak for hjælpen!
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