Scrollposition aus iFrame nehmen

Aser

Erfahrenes Mitglied
Hi,
ich habe eine Seite und möchte in einem Iframe eine andere Seite einbinden (ja ich habe das Recht dazu)
Vom Iframe möchte ich die aktuelle Scroll Position auslesen (siehe unten document.getElementById('meiniframe').pageYOffset; )
aber es scheint nichts zu gehen und bin am verzweifeln.
google wurde auch schon befragt,
hoffe es kann mir einer weiterhelfen und einen korrekten *Pfad/Zeile* nennen, weil ich komm einfach nicht auf meinen Fehler,
herzlichen Dank im Voraus,
Arthur


Code:
<html>

<head>
<link rel="icon" href="./favicon.ico">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<link rel='stylesheet' type='text/css' href='./theme.css'>
<title>hier</title>

<script type="text/javascript">
function ersetze(){
 var position = document.getElementById('meiniframe').pageYOffset;  
 alert('ersetze wird ausgefuerht');


alert('ersetze wird ausgefuerht'+position);
window.setTimeout("ersetze()", 4000);


}
</script>

<style type="text/css">
margin: 0;
</style>


</head>
 
<div id='test' style='position:absolute; background-color:#dddddd; '><marquee scrollamount=2 scrolldelay=8 >dieser Text sollte laufen</marquee></div>

	<body onload="ersetze()">
	<iframe  frameborder="0" id="meiniframe" height="100%" name="meiniframe" src="schreibirgendwasreinabernichtdas.htm" target="Fußnoten" width="100%" >
Ihr Browser unterstützt Inlineframes nicht oder zeigt sie in der derzeitigen Konfiguration nicht an.
</iframe>

	</body>

</html>
 
Hi,

du musst hier unterscheiden, ob der verwendete Browser die Eigenschaft pageYOffset oder scrollTop kennt. Die zweite Eigenschaft erfordert zudem das jeweils verwendete richtige body-Element.
Code:
  if(document.all && !window.opera){
    var objDoc = document.getElementById('meiniframe').contentWindow;
    var objBody =(objDoc.document.compatMode == "CSS1Compat")? objDoc.document.documentElement : objDoc.document.body || null;
  }

 var position = (window.pageYOffset)? document.getElementById('meiniframe').contentWindow.pageYOffset
                                    : objBody.scrollTop;

Ciao
Quaese
 
Hi,
danke für die Hilfe,
allerdings muss ich sagen, dass ich dies so nicht verstanden habe und es nicht funktioniert...

ich will ja nicht schnorren, aber kannst du eine Zeile Tippen, wie es z.b. fuern Firefox hinhaut?

Das Bodyelement, gehe ich davon aus, hast du nun im Link richtig gesetzt?
Nochmals Dank,
sers,
Arthur
 
Hi,

folgende sollte die Scrollposition im iFrame im Firefox ausgeben:
Code:
<button onclick="alert(document.getElementById('meiniframe').contentWindow.pageYOffset);">pageYOffset</button>

Beachte jedoch, dass sich die Dokumente unter derselben Domain befinden müssen. Sonst ist ein Zugriff nicht möglich, da dies gegen die Sicherheitsrichtlinien von JavaScript verstossen würde (same origin policy).

Ciao
Quaese
 

Neue Beiträge

Zurück