---
title: "location.replace + iframe + gecko"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/141037-location-replace-iframe-gecko"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "@nders"
published: "2006-01-17T13:53:31.000Z"
updated: "2006-01-17T18:51:06.000Z"
replies: 8
views: 308
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/141037-location-replace-iframe-gecko"
---

# location.replace + iframe + gecko

## #1 — @nders, 2006-01-17T13:53Z

Hej, vänner!

Jag byter innehåll i en iframe sisomså:

```
document.getElementById('handler').src='foo.asp?foo=bar';
```

Jag vill dock inte göra på det sättet, eftersom det lägger in "sidbytet" i browserns history. Koden fungerar fint i IE & Gecko-läsare dock. Jag tänkte prova att byta med location.replace istället, för att undvika att påverka history. Jag provade således med följande:

```
document.handler.location.replace('foo.asp?foo=bar');
```

Det är såklart felaktigt, eftersom det bara fungerar i Internet Explorer. :)

Hur ska jag göra?

Mvh och tpf,

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

## #2 — Peter S, 2006-01-17T14:06Z

Tjena!  :) 

```
window.frames["namn"].location.replace(...
```

I t.ex. FF returneras ett HTMLIFrameElement från getElementById("handler"). Detta objekt har ingen 'location'-egenskap, utan man får använda:

```
document.getElementById("handler").contentDocument.location.replace(...
```

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

## #3 — @nders, 2006-01-17T14:08Z

... och contentDocument fungerar givetvis inte i IE?

Stort tack för ditt svar! :)

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

## #4 — Peter S, 2006-01-17T14:15Z

Ja, IE använder istället contentWindow.

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

## #5 — @nders, 2006-01-17T14:18Z

Urk. Jag gillar inte att skriva olika kod för olika läsare... :(

Återigen; stort tack! :f

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

## #6 — Peter S, 2006-01-17T14:21Z

På det viset kanske window.frames är att föredra, eftersom det fungerar utan problem i FF/IE/Opera.

 :)

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

## #7 — @nders, 2006-01-17T14:22Z

Hmm, kanske får laborera lite med det?
Mitt enda mål med detta är att byta innehåll i en iframe som ligger på sidan utan att history påverkas. Bättre med window.frames då? Annars; är contentWindow att föredra om man använder ovan metod för IE, istället för att göra som jag gjort i mitt kodexempel?

Mvh

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

## #8 — Peter S, 2006-01-17T14:29Z

Det beror på vilka versioner av IE du vill stödja. contentWindow introducerades tydligen i.o.m. IE5.5, medan frames\[\] troligen varit med längre än så. Men eftersom du kanske använder document.getElementById på fler ställen, spelar det nog ingen roll.

Jag skulle använda window.frames  :) 

Red./ Ja, utifrån ditt kodexempel skulle jag satsa på contentWindow.

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

## #9 — @nders, 2006-01-17T18:51Z

> Men eftersom du kanske använder document.getElementById på fler ställen, spelar det nog ingen roll.

"Jag" använder väldigt blandade metoder.
Jag jobbar i en gigantisk webbapplikation som kom ut i första versionen år 2000, då folk, av någon outgrundlig anledning, fortfarande använde Netscape 4.x. Mycket javascriptkod är alltså från början skriven för att fungera för IE4+, och NN4+. De senaste två åren har jag anpassat alla "yttre" delar av applikationen till .getElementById() och liknande för att ha en kod som fungerar överallt.

Men fortfarande har jag undantag i koden på en hel del ställen, så jag provar ditt contentWindow / contentDocument. :)

Tack! :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/141037-location-replace-iframe-gecko
