webForumDet fria alternativet

Går det att nå document.images[0] i en iframe från pappan?

JavaScript

2 svar · 1 213 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Går det att använda följande koncept även på en sida som är inkluderad i en iframe på samma sida?

document.write(document.images[1].src);

Ovan fungerar men kan man göra något enligt nedan?

<iframe src="http://mattiasNordin.net" name="iFrame" id="iFrame">	</iframe>

<script type="text/javascript">
	
	var iframeElement = document.getElementById("iFrame");
	alert(iframeElement.src);
	alert(iframeElement.images[0].src);
	
</script>

Fungerar ej: alert(iframeElement.images[0].src);

Medlem sedan dec. 20051 056 inlägg
#2

Hmmm antar att jag åker dit på "Same origin policy" även om jag prickar syntaxen rätt...

Medlem sedan aug. 20039 340 inlägg
#3

Mattias Nordin skrev:

Hmmm antar att jag åker dit på "Same origin policy" även om jag prickar syntaxen rätt...

Näe, troligen inte. Du gör ett solklart syntaxfel. iframeElement i detta fall pekar mot själva iframen, inte mot dess dokument. Detta kommer du åt med contentDocument (som motsvarar iframens document-objekt) eller contentWindow.document om du så vill (contentWindow motsvarar iframens window-objekt.) Alltså summa summarum iframeElement.contentDocument.images[0].src

Dessutom gör du ett fel till. Skriptet körs innan sidan har laddats färdigt, vilket gör att document.getElementById("iFrame") returnerar null! (Kanske beroende på hur saker laddas, vilken webbläsare man använder och så.) Kör koden i window.onload.

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)