Avatar billede Slettet bruger
04. september 2001 - 14:58 Der er 6 kommentarer og
1 løsning

Frames og destination skal kombineres..kreativ opgave? *S*

Hejsa!

Jeg har et frameset som jeg _skal_beholde. Det er noget mail/popup ting, men det er egentligt ikke relevant.

Det jeg søger, er lidt JavaScript som gør at et link som f.eks. www.minside.dk/side.php?kategori=1 kan loades i en bestem frame i et fraeset, selvom linket f.eks. kommer fra en søgemaskine.

Som det er nu, har jeg et script der indlæser begge frames, men man ender jo så på forsiden.

Prøv f.eks. at åbne www.divxit.dk/cookies.php så vil du se at siden åbner mit frameset, og derefter index.php i stedet. Dette er for at undgå at folk er udenfor mit fraeset, da der vil opstå fejl uden dette.

Men det må være muligt at åbne en uderframe, således at cookies.php stadig kan ses. Forstår i?

Den kode jeg har nu er:

<script LANGUAGE=\"JavaScript\">
<!--//
function framer()
{
if (top.location==self.location)
{
top.location=\"index.php\"
}
}
//-->
</script>

og så en <body onload=\"framer();\">

Kom med et godt bud!
Avatar billede roenving Novice
04. september 2001 - 15:03 #1
??
Jamen, når du laver en ny top.location er der jo ikke mere nogen forbindelse til den aktuelle location, top overtager jo hele vinduet.
jes
Avatar billede Slettet bruger
04. september 2001 - 15:37 #2
Sjovt, jeg tænkte netop lige på det samme problem! Mit bud er først at lave om på dit script:

<script>
<!--
if (top.location==self.location)
{
nySide = \"index.php\" + \"?\" + self.location.href
top.location = nySide
}
//-->
</script>

Så skal du i selve frameset-siden (index.php) indsætte dette script:

<script>
<!--
if (document.search.indexOf(\"http://\") > -1) {
document.frames[\"dinFrame\"].location.href = document.search
}
//-->
</script>

Så skal du bare ændre \"dinFrame\" til dit rigtige framenavn.

Ulempen ved dette script er, at hvis der skal stå andre information i search (det som står efter spørgsmålstegnet i adressen), så går det grueligt galt!
Avatar billede Slettet bruger
04. september 2001 - 15:39 #3
Ellers kunne man lave en popup, der åbnede og indeholdt de informationer, som man skulle bruge, og som så lukke igen når man ikke skulle bruge dem mere. Popup\'en kunne så blive placeret, så man ikke kunne se den på skærmen!
Avatar billede jakoba Nybegynder
04. september 2001 - 15:52 #4
Her er en der er mulig, men klræver at du laver lidt script for hver ramme i dit frameset og lægger i toppen af undersidene:

http://hjem.get2net.dk/Jakob.Aggernaes/temp/expframe.html

hvis en underside søges loadet alene genskaber den framesettet under sig.

husk at lave en variabel a la
  var loadedFrame = true;
i dit \'rigtige\' frameset så det bliver accepteret som et ok sted at ligge.

mvh JakobA
Avatar billede Slettet bruger
04. september 2001 - 16:16 #5
Jeg kan sq ikke hitte ud af det, jakoba\'s ser meget lovende ud, men jeg får bare blanke sider når jeg forsøger mig...

Kunne du (jakoba) ikke prøve at kigge på www.divxit.dk og lige fortæller mig hvad der skal stå på de forskellige sider i framesættet?

Jeg includer en top.php på undersiderne, så det skal kun rettes 1 sted.

Mine frames ser således ud:

------------------
|  mailer.php  |
|                |
------------------
|  midte.php    |
|                |
------------------

Ja...men jeg er lidt panikken... :)
Avatar billede jakoba Nybegynder
04. september 2001 - 16:56 #6
i frameset filen \'divxit.html\' indsætter du en script-sekttion i head med en variabel (så det frameset bliver genkendt som gyldigt):

<script language=\'javascript\'>>
var el_barto_frame = true;  // frameset lavet af dig
</script>

i alle de underfiler der skal ligge i rammen \'midte\' lægger du et lille script i head (så tidligt spm muligt):

<script language=\'javascript\'> <!-- // indsæt scriptet i head 

var el_barto_frame = false;
if ( !parent.el_barto_frame ) { // hvis jeg ikke ligger i min rette ramme
  el_barto_frame=true;        // så skriv rammen (pas på \' og \")
  document.write(
    \'<frameset  rows=\"*,100%\">\'
    +\'    <frame name=\"top\" src=\"mailer.php\" marginwidth=\"0\" marginheight=\"0\"\'
        +\' scrolling=\"no\" frameborder=\"0\" noresize>\'
    +\'    <frame name=\"midte\" src=\"\' +((location.search.length>0)?location+\"&_\":location+\"?_\")+\'\"\'
        +\' marginwidth=\"10\" marginheight=\"10\" scrolling=\"auto\" frameborder=\"0\">\'
    +\'</frameset>\'
                  );
};

// --> </script>

det skulle være det hele.

PS: din øverste ramme hedder \'top\' det er et grumme farligt navn da top er et reserveret ord i javascript. Tag og kald den moget andet.

mvh JakobA
Avatar billede Slettet bruger
04. september 2001 - 17:13 #7
Kanon jakoba, nu er den i vinkel!

Så er endnu en af ulemperne ved frames overvundet!

Good job old chap!

:)
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