PoffeMedlem sedan apr. 20022 935 inlägg
Tjena!
Har en sida med en iframe. Hur kan jag på huvudsidan få fram vilken adress det är till sidan i iframen?
VIll jag ha adressen på sidan jag är på så anävnder man ju document.location, men jag får inte till det med iframen. Är inte så hajj på javascript som jag trodde :h
Peter SMedlem sedan dec. 20025 484 inlägg
Halloj! :)
Om det inte är en extern sida kan du använda
window.frames["namn_på_iframe"].location
PoffeMedlem sedan apr. 20022 935 inlägg
Hur menar du extern?
Verkar inte fungera det där iallafall, får bara upp adressen till sidan som iframen ligger i, alltså samma som med document.location.
Peter SMedlem sedan dec. 20025 484 inlägg
Under samma domän.
Se bifogat exempel. (Klicka på länkarna från vänster till höger.)
:)
PoffeMedlem sedan apr. 20022 935 inlägg
Så det går alltså inte att få reda på adressen om de inte ligger under samma domän? Verkar konstigt måste jag säga, det borde ju inte ha nått med det att göra.
Eftersom javascriptet ändå körs i användarens webbläsare borde den ju kunna ta reda på vilken adress det är tyvär man ju.
Peter SMedlem sedan dec. 20025 484 inlägg
Ändra tmp.html till
<script>
function f(){
try {
alert(window.frames["i"].location);
} catch(e){
alert("error: " + e.description);
}
}
</script>
<a href="javascript:void (window.frames['i'].location.href='foo.html')">till foo.html!</a>
<a href="javascript:f()">alert()</a>
<iframe name="i" src="http://www.webforum.nu"></iframe>
...och klicka på länkarna i omvänd ordning så får du se.
PoffeMedlem sedan apr. 20022 935 inlägg
Är ju i princip samma sak, bara att man får upp error nu om man klickar på wF.
Men det går alltså inte att få reda på adressen om sidorna inte ligger på samma domän?
Peter SMedlem sedan dec. 20025 484 inlägg
Ja, ett "Åtkomst nekad". Vi kan ju antaga att denna restriktion införts av en anledning och man därför bör beakta den.
Ett mindre bra alternativ skulle kunna vara att du sparar undan adressen till den sida som skall till att laddas i ramen:
var myVar = 0;
<a href="foo.html" onclick="myVar=this.href"...
Sedan
<a href="javascript:void(alert(myVar))"...
...för att ta reda på adressen. Problemet med denna lösning är ju att det inte sparas undan något värde om användaren klickar på en länk på sidan i ramen; det fungerar ju endast om denne användare klickar på en länk i huvudsidan.
:)
PoffeMedlem sedan apr. 20022 935 inlägg
Nu kan jag ju inte sen vad det skulle vara för anledning men jag tror dig ;)
Enligt mig riktigt dumt men nu får jag en ny utmaning i att hitta en annan lösning :birp
Peter SMedlem sedan dec. 20025 484 inlägg
Det kan finnas workarounds, men eftersom de definitivt kommer att täppas till förr eller senare så känns det ganska meningslöst att använda dem.
:)