---
title: "innerHTML till en DIV i en annan frame"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/107711-innerhtml-till-en-div-i-en-annan-frame"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "nkrantz"
published: "2004-07-20T15:45:57.000Z"
updated: "2004-07-21T20:04:05.000Z"
replies: 15
views: 431
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/107711-innerhtml-till-en-div-i-en-annan-frame"
---

# innerHTML till en DIV i en annan frame

## #1 — nkrantz, 2004-07-20T15:45Z

Det borde ju inte vara några svårigheter att göra, men parent.frames\['right'\].document.getElementById('divID').innerHTML='some new content here...'; funkar inte.

Läste något om att detta inte skulle funka, varför och hur löser man det?

// Nippe

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

## #2 — Jojoxx, 2004-07-20T21:57Z

Det fungerar så länge som rättigheterna tillåter det. D.v.s. de båda dokumenten som ligger i resp. frame måste ligga på samma domän. (...och givetvis att det inte är några alvarliga fel på dokumentstruktur (att det validerar) och att du inte har scriptfel någonstanns på sidan så att script-exekveringen avbryts).

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

## #3 — nkrantz, 2004-07-20T21:59Z

Det ligger i samma domän, strukturen är korrekt. Det kanske är det här med domänen som strular, kör det lokalt och då finns det ju ingen domän... Lite långsökt kanske?

// Nippe

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

## #4 — PepeJeria, 2004-07-21T09:57Z

Vad får du för javascript error?

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

## #5 — nkrantz, 2004-07-21T09:59Z

Jag får inget, det är det som också är lite skumt. Men inget händer...

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

## #6 — PepeJeria, 2004-07-21T10:20Z

IE brukar inte vara så bra på att visa felen, om du har Mozilla så kan du kolla efter felet i /tools/Javascript console

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

## #7 — Jojoxx, 2004-07-21T10:21Z

Ingen liten skylt längst ner till vänster i status-raden som säger "Fel på sidan."? Ligger båda dokumenten lokalt så skall det iofs inte vara några problem med det. Då skulle jag snarare gissa på fel i dokumentet eller att frames-strukturen inte stämmer (parent.right).

Ett litet exempel:

```
<iframe name="right"></iframe><br/>
<a href="#" onclick="frames['right'].document.write('<div id=\\'divID\\'>En div</div>');">Skriv en div</a><br/>
<a href="#" onclick="frames['right'].document.getElementById('divID').innerHTML='some new content here...';">Ändra innehållet</a><br/>
```

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

## #8 — nkrantz, 2004-07-21T11:14Z

Måste jag skapa Div-en dynamiskt med Javascript för att det skall funka?

Eller varför gjorde du det i din kod?

// Nippe

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

## #9 — PepeJeria, 2004-07-21T11:23Z

Jag gjorde en funktion av första (lättare kunna få en bra överblick):

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<script type="text/javascript">
function writeToFrame(html)
{
	var oFrame = window.frames["right"];
	oFrame.document.open();
	oFrame.document.write(html);
	oFrame.document.close();
}
</script>
</head>

<body>
<iframe name="right"></iframe><br/>
<a href="#" onclick="writeToFrame('<div id=\'divID\'>En div</div>'); return false;">Skriv en div</a><br/>
<a href="#" onclick="frames['right'].document.getElementById('divID').innerHTML='some new content here...'; return false;">Ändra innehållet</a><br/>

</body>
</html>
```

Men felet var bland annat att du hade:

```
document.write('<div id='divID'>En div</div>');
```

Det som händer då är att strängen blir "\<div id=", men om du escapar ' med \\' så fungerar det fint.

Sen när man skriver till en iframe så måste du köra med document.open, document.write och document.close

Utan document.open så laddade browsern om huvudsidan och laddade i evigheter.

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

## #10 — nkrantz, 2004-07-21T11:27Z

Ok, tackar...

Men, frågan kvarstår, måste jag skapa div-en dynamiskt för att kunna skriva till den?

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

## #11 — PepeJeria, 2004-07-21T11:31Z

Det är ju det du gjorde, genom att skriva till iframe med document.write så skapar du den dynamiskt, du skulle även kunna göra samma sak med document.createElement och sen köra appendChild till iframen, blir samma resultat.

Förstår inte riktigt din fråga dock, men ja, du måste skapa den först innan du skriver till den, alternativet är att ha en src på iframen innehållande en div.

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

## #12 — nkrantz, 2004-07-21T11:34Z

Okej, tar det från början ;) Det var Jojoxx som skrev koden som du skrev om sedan. 

Så som jag hade det var att jag i min ena frame (right) hade en div, enligt: \<div id="namnet"\>\</div\> Sedan ville jag från en annan frame skriva till denna div. Jag använde: parent.frames\['right'\].document.getElementById('divID').innerHTML='some new content here...'; men det funkade inte.

Måste jag öppna div-en, typ parent.frames\['right'\].document.getElementById('divID').open() innan jag kan skriva till den?

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

## #13 — Jesper T, 2004-07-21T11:38Z

> Måste jag öppna div-en, typ parent.frames\['right'\].document.getElementById('divID').open() innan jag kan skriva till den?

Nej

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

## #14 — PepeJeria, 2004-07-21T11:40Z

Nej, för att skriva till div:en kan du använda dig av innerHTML, document.open/write/close använder du för frames.

Exemplet ovan som jag postade (med din kod för att skriva till div:en) fungerar utmärkt.

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

## #15 — nkrantz, 2004-07-21T14:37Z

Får testa när jag får möjlighet! Tack för hjälpen!

/N

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

## #16 — Jojoxx, 2004-07-21T20:04Z

> **PepeJeria skrev:**
>
> Men felet var bland annat att du hade:
>
>
> ```
> document.write('<div id='divID'>En div</div>');
> ```

Som du märker så snor forumet några \\ :) (Har ändrat exemplet.)

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/107711-innerhtml-till-en-div-i-en-annan-frame
