---
title: "Komma åt element i ett öppnat fönster?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/167338-komma-åt-element-i-ett-öppnat-fönster"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Troxy"
published: "2007-12-17T10:51:08.000Z"
updated: "2007-12-17T20:08:19.000Z"
replies: 13
views: 680
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/167338-komma-åt-element-i-ett-öppnat-fönster"
---

# Komma åt element i ett öppnat fönster?

## #1 — Troxy, 2007-12-17T10:51Z

Hallå,
om jag öppnar ett fönster med window.open(), såhär:

```
var image = window.open('image.html')
```

Kan jag modifiera element som finns inuti image-fönstret?
Min förhoppning var att man kunde göra såhär:

```
var title = image.document.getElementById('title');
...
```

Men det funkar inte :(
Tacksam för svar.

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

## #2 — @nders, 2007-12-17T11:00Z

*image* är reserverat - prova med annat namn. Sedan beror det ju såklart lite på vad du menar att *title* är för något.

I övrigt: vad menar du med "funkar inte"? Vad säger felkonsollen?

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

## #3 — Troxy, 2007-12-17T13:16Z

Oj, slavigt att glömma bort det reserverade Image-objektet...  :r 

Jag har kommit fram till att det handlar om fördröjning på något vis.
Kolla in följande testkod:

```
var imageWin = window.open('window.html');					
alert(imageWin.document.getElementById('title')); // visar 'null'
setTimeout("alert(imageWin.document.getElementById('title'))", 100); // visar 'HTMLHeadingElement'
```

Vid första alerten så finns inte elementet.
100 millisekunder senare så finns det.
Jag antar att man måste vänta lite på att dokumentträdet ska hinna ladda klart?

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

## #4 — colione, 2007-12-17T13:38Z

prova att kolla onreadystatechange/readyState på imageWin.document

<http://msdn2.microsoft.com/en-us/library/ms534308.aspx>

<http://msdn2.microsoft.com/en-us/library/ms534361.aspx>

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

## #5 — SPiN, 2007-12-17T13:59Z

Och fungerar inte det, kanske du kan skicka data tillbaka till huvudfönstret?

```
...
<body onload="javascript: parent.document...">
...
```

Dvs. i det nyöppnade fönstret.

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

## #6 — colione, 2007-12-17T14:01Z

fast då utan javascript: innan samt använda window.opener....

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

## #7 — nitro2k01, 2007-12-17T14:59Z

> **@nders skrev:**
>
> *image* är reserverat - prova med annat namn. Sedan beror det ju såklart lite på vad du menar att *title* är för något.
> 
> I övrigt: vad menar du med "funkar inte"? Vad säger felkonsollen?

Här får jag vara en wesserschmitter och säga att **image** faktiskt inte är reserverat. **image** är lika lite reserverat som **Alert("Hej")** fungerar, alltså inte alls. **Image** däremot är reserverat. (Mao, JS skiljer på de stora och små.)

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

## #8 — @nders, 2007-12-17T15:00Z

Stimmt, nitro!

My bad! (y)

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

## #9 — Troxy, 2007-12-17T15:32Z

Tack för att ni hjälper mig på traven!  :bire 
Men jag hittar ingen smidig lösning på detta. (förutom fullösningen med setTimeout   x( ).
Men låt mig förklara ett annat snarlikt problem som jag tampas med:

Jag vill öppna ett fönster med hjälp av window.open().
Det nyöppnade fönstret ska även få tillgång till ett Javascript-objekt som är definierat i det ursprungliga "opener"-fönstret.
Jag måste alltså på något sätt "bolla över" en variabel från det ursprungliga fönstret till det nyöppnade fönstret.
Hur gör jag det?  :q

EDIT:
Såhär VILL jag kunna göra:  x( 

```
var obj = new someObject();
var win = window.open('sida.php');
win.obj = obj;
```

Enligt min logik så borde variabeln ***obj*** finnas i det nya fönstret nu.
Men det fungerar inte i Firefox eller Safari. Jag ska försöka kolla IE senare...

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

## #10 — headbug, 2007-12-17T15:57Z

Testa att anropa 

```
obj = opener.obj;
```

 i ditt nya fönster istället...

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

## #11 — Troxy, 2007-12-17T16:13Z

headbug, det skulle fungera (y) 
MEN då har jag problemet att det nya fönstret måste veta exakt vad variabeln i opener heter, och det namnet kommer nog att variera.
Mitt mål är att kunna styra det nya fönstret helt och hållet från det ursprungliga fönstret.

Mitt senaste exempel fungerar faktiskt i Windows med både IE, Firefox och Opera.
Men på iMacen så vill det inte fungera med någon läsare öht. Skumt.

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

## #12 — metalboy, 2007-12-17T16:39Z

Läste igenom lite mer noggrant nu, och såg att jag hade missförstått.   :r

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

## #13 — nitro2k01, 2007-12-17T19:23Z

metalboy: Fel tråd?

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

## #14 — Troxy, 2007-12-17T20:08Z

Precis när man är nära att ge upp så...börjar allting fungera helt plötsligt :P 

Såhär gör man för att skicka med en variabel till ett nytt fönster:

```
var w = window.open('page.html');
w.foo = '123' // Variabeln foo finns nu i det nya fönstret
```

Och såhär gör man för att komma åt elementen i ett nytt fönster:

```
var w = window.open('page.html');
w.onload = function() {
   var bar = w.document.getElementById('bar'); // Hämtar elementet i det nya fönstret med id="bar"
};
```

Tack till er alla för visat intresse!
God Jul  :birp

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/167338-komma-åt-element-i-ett-öppnat-fönster
