webForumDet fria alternativet

Stänga frame

JavaScript

3 svar · 245 visningar · startad av LeonL

Medlem sedan dec. 20025 871 inlägg
Frågan#1

Jag undrar hur man går till väga när man vill stänga en frame?

Just nu har jag en sida bestående av ett frameset med två frames, som heter frame1 respektive frame2.

Nu vill jag stänga frame2 så den inte syns, samt ta bort frameset:et och skicka besökaren till frame1:s nuvarandre adress.

Ex.
frame1 = http://www.webforum.nu
frame2 = hej.asp

Efter ett tags surfande blir det:
frame1 = http://www.webforum.nu/newthread.php?s=&action=newthread&forumid=24
frame2 = hej.asp

Nu vill jag stänga frame2 genom att klicka på en länk (window.close(); funkar ej) som finns i frame2. Sedan vill jag att framesetet tas bort, så det ska se ut som om att man surfade till frame1:s nuvarande adress som om man hade skrivit den i adressfältet! (i det här fallet: http://www.webforum.nu/newthread.php?s=&action=newthread&forumid=24)

Hur ska jag göra? Eller förstår ni vad jag vill öht? ;) :p

Medlem sedan sep. 20021 655 inlägg
#2

Jag antar att du vill ha på det ungefär samma sätt som jag har gjort här:
http://roslund.homeip.net/mattias/arbetsplats/

Klicka på "Öppna i nytt fönster" för att se vad jag menar.

Aktuell kod ser ut så här:

var o = 0;

function newWin(){
    if(o%2==0){
        document.getElementById('newwin').innerHTML = "Öppna i frame";
        document.getElementById('inform').target="_blank";
        parent.document.getElementById("frameset").cols="100%, 0%";
    } else{
        document.getElementById('newwin').innerHTML = "Öppna i nytt fönster"
        document.getElementById('inform').target="output";
        parent.document.getElementById("frameset").cols="50%,50%";
        document.forms[0].submit();
    }
    o++;
}

Och nu ser jag att det finns en massa onödigt i den funktionen.
Det du vill åt är:

parent.document.getElementById("frameset").cols="100%, 0%";

Mitt frameset har id="frameset".

Medlem sedan dec. 20025 871 inlägg
#3

Tack, funkade utmärkt! :bire

Finns det något sätt att göra så att hela fönstrets location blir frame1:s adress? (utan någon frame)

Medlem sedan juni 20004 308 inlägg
#4

Det kan vara lite knivigt eftersom från fönstret (top) är frame1's adress "write-only" (alltså inte läsbar) ifall adressen inte är inom samma domän (vilket den är om frameset-sidan ligger på din domän och du surfar på webForum.nu).

251 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)