---
title: "frames"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/17816-frames"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "fluxis"
published: "2001-05-30T21:01:00.000Z"
updated: "2001-06-01T13:09:00.000Z"
replies: 11
views: 165
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/17816-frames"
---

# frames

## #1 — fluxis, 2001-05-30T21:01Z

jag undrar om det finns någon kod till att kolla så att man sitter i frames.

ex på en sida :
\----------------
&#0124;  1 &#0124;     2   &#0124;
\----------------
(1 = en sida, 2 = en annan sida)

jag vill att dem här två sidorna alltid ska vara laddade. så att man inte bara kan kolla på sida 2. utan om sidan 1 inte laddas så ska sidan laddas om så att jag får upp :
\----------------
&#0124;  1 &#0124;     2   &#0124;
\----------------

och inte :
\----------------
&#0124;     2        &#0124;
\----------------

hoppas att ni fattar....

Permalänk: https://www.webforum.nu/p/17816

## #2 — Erik Juhlin, 2001-05-31T05:41Z

Jo, det går ju att kolla det så här:

```
<script language="JavaScript">
<!--
function checkframes(){
if (top.location.href == location.href){
top.location.href == "frameset.html";
}
}
//-->
</script>

<body onload="checkframes();">
```

Permalänk: https://www.webforum.nu/p/333349

## #3 — Jojoxx, 2001-05-31T05:45Z

Ett litet ex. Om vi börjar med att bygga ett frameset-dokument som innehåller denna kod, vi kallar dokumentet fr.html;

```
<frameset cols="50%,*">
<frame src="a.html" name="a">
<frame src="b.html" name="b">
</frameset>
```

På sidan a.html lägger du i body in;

```
<body onLoad="if(parent.b.location.href!='urlen_till_b.html'){ parent.b.location.href='b.html'; }">
```

och på sidan b.html;

```
<body onLoad="if(parent.a.location.href!='urlen_till_a.html'){ parent.a.location.href='a.html'; }">
```

Eftersom vi exekverar scriptet först när sidan är laddad så borde man komma runt e.v. timing-problem som annars kan uppstå.

Permalänk: https://www.webforum.nu/p/333350

## #4 — Jojoxx, 2001-05-31T05:51Z

Hoppsan, var visst lite sen där. Men (Erik), eftersom scriptet ligger i frameset-dokumentet bör man lägga eventet i \<frameset\> istället för \<body\> :)

Det skyddar däremot inte mot att man länkar iväg sig från sidorna till andra sidor när framesetet en gång är laddat.

Permalänk: https://www.webforum.nu/p/333351

## #5 — Erik Juhlin, 2001-05-31T05:55Z

Jag tänkte att den koden skulle ligga på undersidorna. Då kan ingen länka till undersidorna. Gör de det så laddas framsetet in.

Smart vore om man med JavaScript eller något serverside-språk laddade in sidan som blev länkad i framesetet.

Permalänk: https://www.webforum.nu/p/333352

## #6 — fluxis, 2001-05-31T06:22Z

erik :

ska jag lägga

```
<script language="JavaScript">
<!--
function checkframes(){
if (top.location.href == location.href){
top.location.href == "frameset.html";
}
}
//-->
</script>
<body onload="checkframes();">
```

i sidan 2 och sidan 1 ??

Permalänk: https://www.webforum.nu/p/333353

## #7 — Erik Juhlin, 2001-05-31T06:29Z

Jepp..
Det känner sen av om sidan laddats ensam eller om den laddats inuti ett frameset. :)

Permalänk: https://www.webforum.nu/p/333354

## #8 — fluxis, 2001-05-31T11:00Z

jag får inte koden att fungera...

sida : index.html

```
<html>

<head>
<title>frames</title>
</head>

<frameset cols="50%,*">
<frame src="a.html" name="a">
<frame src="b.html" name="b">
</frameset>

</html>
```

sida : a.html

```
<html>

<head>
<title>a</title>
</head>

<script language="JavaScript">
<!--
function checkframes(){
if (top.location.href == location.href){
top.location.href == "index.html";
}
}
//-->
</script>

<body onload="checkframes();">

</body>

</html>
```

sida : b.html

```
<html>

<head>
<title>b</title>
</head>

<script language="JavaScript">
<!--
function checkframes(){
if (top.location.href == location.href){
top.location.href == "index.html";
}
}
//-->
</script>

<body onload="checkframes();">

</body>

</html>
```

jag fattar inte vad som är fel..

för om jag bara öppnar b.html så kommer bara b.html upp och inte hela index.html, jag vill att index.html ska laddas om man bara går in på ex. b.html... hoppas att ni förstår...

Permalänk: https://www.webforum.nu/p/333355

## #9 — Jojoxx, 2001-05-31T11:18Z

Erik, jag läste lite fel. Jag läste *if(top.location.href != location.href)*, alltså ett vanligt framebrytarscript i princip. Men om vi tittar på din kod.

```
<script language="JavaScript">
<!--
function checkframes(){
if (top.location.href == location.href){
top.location.href == "frameset.html";
}
}
//-->
</script>
<body onload="checkframes();">
```

Så känner den bara av om aktuell sida ligger laddad överst i fönstret, och i så fall skall den ersättas med frameset-dokumentet. Ligger sidan laddad i en underframe (vilken som hellst) så händer ingenting. Likaså finns inget skydd om du länkar in andra sidor i den ena eller andra framen.

Permalänk: https://www.webforum.nu/p/333356

## #10 — Erik Juhlin, 2001-05-31T11:35Z

Man kanske skulle kunna skriva typ:
if(top.location.href != "http://.../index.html"){..}

Eller vad säger du Jojoxx?

Permalänk: https://www.webforum.nu/p/333357

## #11 — Jojoxx, 2001-05-31T11:44Z

Ja, eller ännu bättre, if(parent.location.href!="url'en_till_frameset-sidan") så kan frameset-dokumentet ligga i en underframe, men sidan a/b.html måste ligga under frameset-dokumentet. \*phew\* :)

Alltså;

```
<body onLoad="if(parent.location.href!='url'en_till_frameset.html'){ parent.location.href='frameset.html'; }">
```

Efter att ha tittat lite nogrannare på mitt exempel ser jag att detta inte heller skulle fungera speciellt bra. Problemet är att skydda från att man när man väl laddat ex. a.html/b.html i resp. frame därifrån laddar in andra sidor, men det är väl bäst att hålla koll på när man gör sidorna.

Jag tror detta är det bästa exemplet utan att spåna ur alltför mycket.

Permalänk: https://www.webforum.nu/p/333358

## #12 — fluxis, 2001-06-01T13:09Z

jag får det inte att fungera...

sidan bara laddas om hela tiden den slutar aldrig att ladda om.

jag fattar inte hur man ska göra nu...

```
<body onLoad="if(parent.location.href!='url'en_till_frameset.html'){ parent.location.href='frameset.html'; }">
```

Permalänk: https://www.webforum.nu/p/333359

---

Tråden på webben: https://www.webforum.nu/amne/javascript/17816-frames
