waarde van element in iframe opvragen vanuit hoofddocument

Status
Niet open voor verdere reacties.

Jeanjean

Gebruiker
Lid geworden
1 okt 2008
Berichten
22
Hallo iedereen,

Ik heb een HTML-document met daarin een iframe.
De bron van dat iframe bevat een aantal invoervelden.
Ik wil de waarde van die velden opvragen vanuit het hoofddocument.
Dat werkt prima, zolang het hoofddocument en de bron van het iframe gehost worden op dezelfde server.
Als de bron van het iframe geladen wordt vanaf een andere server dan die van het hoofddocument, dan werkt het niet meer...
(heb trouwens een paar dagen gespendeerd om daar achter te komen!)

Kent iemand een workaround voor dit probleem?

Groeten, en dank voor uw aandacht.
Jeanjean.

Edit:
Ik wil ook scriptjes in het hoofddocument aanroepen vanuit het iframe, maar loop daar tegen hetzelfde probleem...
 
Laatst bewerkt:
Ik heb een manier gevonden om dit probleem op te lossen!
Hiermee kan ik vanuit een iframe een script in het parent-document aanroepen, en via een functie-argument kan ik dus ook waarden vanuit het iframe naar het parent-document sturen.
Hieronder een beknopt voorbeeld:

parent-document:
HTML:
<html>
	<head>
		<script>
			if(window.addEventListener){
				window.addEventListener('message',onMessage,false);        
			}else{
				if(window.attachEvent){
					window.attachEvent('onmessage',onMessage,false);
				}
			}
			function onMessage(event) {
				var data=event.data;
				if (typeof(window[data.func])=='function'){
					window[data.func].call(null,data.message);
				}
			}
			function parentFunc(message){
				document.getElementById('pText').innerHTML=message;
			}
		</script>
	</head>
	<body>
		<iframe src='http://andere_host.com/iframe.htm' width='320'></iframe><br/>
		<p id='pText'></p>
	</body>
</html>

iframe.htm (gehost op 'andere_host.com')
HTML:
<script>
	function onClick(){
		var myText=document.getElementById('inputText');
		window.parent.postMessage({'func':'parentFunc','message':myText.value},'*');
	}
</script>
<input type='text' value='' id='inputText' />
<button onclick="onClick();">Stuur naar 'Parent'</button>

Ik ga nog wat werk hebben om het helemaal aan te passen naar mijn noden, maar *het principe* werkt in alle geval wel. :thumb:
 
Een voorbeeld van EventListener 'message' vind je hier (klik)
Het werkt niet in alle browsers, alleen op browsers met een Chromium engin.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan