iFrame get huidige url

Status
Niet open voor verdere reacties.

apellsientje925

Gebruiker
Lid geworden
6 jun 2009
Berichten
142
Hoi,

Is het mogelijk via javascript de huidige URL van een iframe te achterhalen?
Als dat mogelijk is zou je het dan even willen zeggen:)

MVG
 
Laatst bewerkt:
Ik had al zo'n blauw vermoeden dat die vraag zou komen. :)

Ik ga ervan uit dat het een pagina is met een aantal menu-knoppen buiten het <iframe>, en dat je dan met zo'n knop een bepaalde inhoud (pagina) in het <iframe> lanceert.

Je maakt dan een soort functie die sumultaan met de nieuwe iframe-inhoud oploopt, zoals:
[JS]<script type="text/javascript">
var frameInhoud = 1; // startwaarde

function whatFrame(n){
frameInhoud = n; // afhankelijk van de aangeklikte inhoud van het iframe
doeIets();
}
function doeIets(){
if (frameInhoud == 1){
// wat er in dit geval moet gebeuren
}
if (frameInhoud == 2){
// wat er in dat geval moet gebeuren
}
// enz.
}
</script>[/JS]
Bij je menuknoppen kan je de functie whatFrame(n) oproepen:
HTML:
<ul>
    <li><a href="home.htm" target="iframeContent" onclick="whatFrame(1)">home</a></li>
    <li><a href="news.htm" target="iframeContent" onclick="whatFrame(2)">news</a></li>
    <li><a href="olds.htm" target="iframeContent" onclick="whatFrame(3)">olds</a></li>
</ul>

<iframe name="iframeContent" id="iframeContent" src="home.htm" frameborder="0"></iframe>
De name="..." en de id="..." zijn alle twee nodig (en moeten hetzelfde heten): de name is nodig voor de aanroep van de src, de id is nodig voor de reset-functie (zie hieronder).
In het begin, als nog nergens op geklikt is, moet de doeIets() functie voor de eerste iframe-inhoud automatisch gaan:
HTML:
<body onload="reset(); doeIets();">

Dit alles in werking:
Onvolkomenheid kan zijn (hangt af van wat de doeIets() functie precies gaat worden), dat bij een page-refresh het iframe blijft staan, maar het script wel weer vanaf start begint (en dus een verkeerde actie kan ondernemen).
  • In het testvoorbeeld was dat: iframe staat op een nieuwe inhoud, maar bij een refresh geeft het script aan dat de start-inhoud in het iframe zit.
  • Maar dit is omzeild door een reset() functie in te bouwen, die bij een refresh eerst het iframe terug op de start-inhoud zet. :)
  • Als dat niet wenselijk is, zou je een cookie van de laatste stand kunnen maken, dat bij een page-refresh weer binnengehaald wordt.
Met vriendelijke groet,
CSShunter
 
Nou eh, dat is het niet. Is er ook een mogelijkheid dat je het makkelijk in een var kunt zetten?

Edit: Het is me nu gelukt met: document.getElementById('frame').contentWindow.location.href
Bedankt voor de reacties ;)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan