---
title: "Problem med location.href för iframe"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/91011-problem-med-location-href-för-iframe"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "haider"
published: "2003-11-22T19:12:01.000Z"
updated: "2003-11-26T16:37:18.000Z"
replies: 7
views: 373
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/91011-problem-med-location-href-för-iframe"
---

# Problem med location.href för iframe

## #1 — haider, 2003-11-22T19:12Z

Tjena..

Jag har ett mycket underligt problem.
När jag skriver:

> contence.location.href=(location.search.length\>1)?location.search.substring(1):"sidor/xcellfitness.htm";

Så säger explorer att den inte kan indentifiera **contence** trots att jag har en iframe som heter så.

Så ser iframe-koden ut:

> \<iframe src="" name="contence" ....\>\</iframe\>

Jag vill allså byta ut src, med hjälp av ett skript.
Sidan finns på [www.xcellfitness.com/main.htm](http://www.xcellfitness.com/main.htm)

Som sagt, jag har provat på detta innan utan problem, men nu är det trouble visst...

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

## #2 — Jojoxx, 2003-11-23T09:49Z

Finns iframen när koden exekveras? Om du kör scriptet direkt (ej via en länk eller onload, d.v.s. när allt är laddat) och iframen ligger efter scriptet i koden så kommer inte scriptet att fungera.

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

## #3 — haider, 2003-11-23T11:14Z

Ja, anropas från en extern JS fil.
Men den anropas från samma dokument som iframe finns i.

Är det inte märkligt?

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

## #4 — Jojoxx, 2003-11-23T13:03Z

Nja, det behöver inte vara så märkligt. iframen måste som sagt finnas vid det tillfälle när koden körs. Att scriptet är inlänkat från en .js-fil gör inte saken bättre.

Exempel:

```
<iframe name="contence"></iframe>
<script type="text/javascript">
contence.location.href="http://www.google.com";
</script>
```

Funkar!

```
<script type="text/javascript">
contence.location.href="http://www.google.com";
</script>
<iframe name="contence"></iframe>
```

Funkar inte!

Du kan även lösa det genom att köra koden onload:

```
window.onload=function(){
contence.location.href=(location.search.length>1)?location.search.substring(1):"sidor/xcellfitness.htm";
}
```

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

## #5 — haider, 2003-11-25T19:16Z

Jojoxx, jag har inte förklarat situationen riktigt noga.

En gång fick jag hjälp av dig ifråga om sidor som hamnat utanför sin frame, och hur jag kunde få dem på plats igen.

Skriptet jag fick av dig, funkade super, men å andra sidan, så hade den inget efter www.domän.se/

I detta fallet, så finns en sida också angiven, www.domän.se/main.htm

Detta tycks vara boven i ärendet.

Så här såg skriptet ut, som placerar dokumentet rätt:

```
window.onload=init;
function init(){
 content.location.href=(location.search.length>1)?location.search.substring(1):"content.htm";
}
```

Jag får erkänna att jag inte vet hur man tolkar **content.location.href=(location.search.length\>1)?location.search.substring(1):"content.htm";** men det funkar i alla fall.

Jag har även använt den i ett annat sammanhang, men där har jag skrivit

```
var contentz=(location.search.length>1)?location.search.substring(1):"content.htm";
```

Där jag använt **contentz** på detta sättet:

```
document.write('.... src="' + contentz + '"....');
```

Och då har det funkat bra med.
Så jag funderar nu, att om jag inte får rätt på det, så ska jag använda variabel-metoden, och ett skript som skriver in raden för iframen där iframen ska finnas, istället för att ha skrivit in iframe-raden redan från början.

Har jag förklarat bättre?
Säg till annars, om nåt ännu verkar oklart.

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

## #6 — Jojoxx, 2003-11-25T19:41Z

> **haidar skrev:**
>
> ```
> content.location.href=(location.search.length>1)?location.search.substring(1):"content.htm";
> ```

Detta är en villkorsstyrd tilldelning. Exempel;

```
idagardet=(month==12 && day==24)?"Julafton":"Inte julafton";
```

Först kommer alltså objektet vars värde skall tilldelas. Inom parentesen är uttrycket som står till grund för tilldelningen. Efter frågetecknet är värdet ifall uttrycket är sant och efter kolonet är värdet om uttrycket inte är sant.

location.search är query-delen av url'en, inklusive inledande "?", och .substring(1) tar ut värdet från 2'a tecknet (index 1) till sluten av strängen.

Lade upp ett litet exempel här:
<http://www.jojoxx.net/wF/89043.html>
<http://www.jojoxx.net/wF/89043.html?http://www.yahoo.com>

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

## #7 — haider, 2003-11-26T15:28Z

:e

Yes. Det är exakt så jag vill göra.
Men, hos mig tycktes det inte funka - ska kolla igenom min sida och jämföra med din kod.

Jag löste det med **document.write('\<iframe....' + variabel (som är src) ... ');**

Men de enklaste lösningar är bäst, och **http://www.jojoxx.net/wF/89043.html?<http://www.yahoo.com>** är så enkel som det får lov att vara.

I'll be back  :h

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

## #8 — Jojoxx, 2003-11-26T16:37Z

Ok :) Kolla så att du inte får scriptfel (från något annat script på sidan) så att scriptexekveringen avbryts.

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/91011-problem-med-location-href-för-iframe
