# Iframe - Inhalt ausgeben



## Sasser (6. Februar 2009)

Hallo Leute!

Ich versuche den Inhalt eines Iframes per:


```
<script type="text/javascript">
var test = document.getElementById('toplist').contentWindow.document.body.innerHTML;
document.write(test);
</script>
```

auszugeben, aber was mache ich falsch?


----------



## Maik (6. Februar 2009)

Hi,

ich würde sagen, dass du den (i)Frame (contentWindow) mit der getElementById()-Methode des document-Objekts im Fenster (window-Objekt) falsch ansprichst.

Siehe frames: Allgemeines zur Verwendung, und im "SELFHTML Forumsarchiv"  iframe-inhalt als variable ausgeben.

mfg Maik


----------



## Quaese (6. Februar 2009)

Hi,

der Zugriff aufs document-Objekt und somit auf den *body* sollte auch über das *contentWindow*-Objekt möglich sein. Allerdings kann ein Zugriff erst erfolgen, wenn der iFrame ins Dokument eingebunden wurde - also zum Beispiel im onload-Event.


```
window.onload = function(){
  var test = document.getElementById('toplist').contentWindow.document.body.innerHTML;
  document.write(test);
}
```
 
Eine weitere Einschränkung: der Inhalt des iFrames muss unter der gleichen Domain liegen. Sonst ist ein Zugriff aufgrund der Sicherheitsrichtlinien von JavaScript nicht möglich (Richtlinie gleicher Herkunft).

Ciao
Quaese


----------



## Sasser (7. Februar 2009)

Ich danke dir!

Sag mal kann ich nun mit JavaScript aus dem gewonnenen Quellcode einen Teil auslesen?

Habe es bisher mit PHP gelöst, aber das dürfte ja hier nicht funktionieren oder? Also dass ich den Quellcode nun an PHP übergebe als Variable!?


----------



## Sasser (17. Februar 2009)

*Quelltext - Iframe*

Hallo!

Ich habe zwei Iframes, mit dem ersten rufe ich eine URL auf und möchte nun per JavaScript den Quelltext in eine Variable speichern und einen Teil im Quelltext filtern!

Der Teil beginnt nach "sid=" und ist 32 Stellen lang! Anschließend möchte ich diesen Teil angehängt an eine URL an src="" senden!

Wie kann man das mit JavaScript realisieren? Und überhaupt?


----------



## Sasser (17. Februar 2009)

Also ich bin nun sehr weit gekommen!

Was nun noch fehlt ist, dass beim Auslesen des Quelltextes kein Referer und keine IP-Adresse des Aufrufers übergeben wird!? Wie kann man den Quelltext aufrufen und diese Informationen mit übergeben?


```
$html = file_get_contents ( "http://www.domain.de" );

$sid = substr ( $html, strpos ( $html, "sid=" ) + 4, '32' );

echo "<b>SID: $sid</b>";
echo "<iframe width='100%' height='200' src='http://www.domain.de/index.php?a=in&u=User?sid=$sid'>";
```

Das folgende habe ich gefunden und es übergibt auch den Referer, allerdings fehlt nun noch die IP-Adresse des Aufrufers!?


```
function getPage($url, $referer, $timeout, $header){
    if(!isset($timeout))
    $timeout=30;
    $curl = curl_init();
    if(strstr($referer,"://")){
    curl_setopt ($curl, CURLOPT_REFERER, $referer);
    }
    curl_setopt ($curl, CURLOPT_URL, $url);
    curl_setopt ($curl, CURLOPT_TIMEOUT, $timeout);
    curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla/%d.0",rand(4,5)));
    curl_setopt ($curl, CURLOPT_HEADER, (int)$header);
    curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
    $html = curl_exec ($curl);
    curl_close ($curl);
    return $html;
    }
    getPage(’http://YourDomain.Com’, ‘http://google.com’, ‘30');
```


----------



## con-f-use (17. Februar 2009)

Wenn es sich bei den Seiten im Iframe um Domain-Fremde Seiten handelt, hast du mit Javascript allein grundsätzlich keine Chance.


----------



## Sasser (18. Februar 2009)

Danke für die schnelle Antwort!

Aber ist es nicht möglich, meinen folgenden Code auszubauen, sodass auch die IP des Benutzers mit übergeben wird? Ansonsten funktioniert das folgende Script!


```
function getPage( $url, $referer ) {
    $curl = curl_init ();
    if (strstr ( $referer, "://" )) {
		curl_setopt ( $curl, CURLOPT_REFERER, $referer );
    }
	# Funktioniert leider nicht:
        # curl_setopt ( $curl, CURLOPT_INTERFACE, $_SERVER["REMOTE_ADDR"] );
    curl_setopt ( $curl, CURLOPT_URL, $url );
    curl_setopt ( $curl, CURLOPT_USERAGENT, sprintf ( "Mozilla/%d.0" , rand ( '4', '5' ) ) );
    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, '1' );
    $html = curl_exec ( $curl );
    curl_close ( $curl );
    return $html;
}

$html = getPage ( 'http://www.domain.de', 'http://www.meineseite.de');  

$sid = substr ( $html, strpos ( $html, "sid=" ) + 4, '32' );

echo "<b>SID: $sid</b>";

echo "<iframe width='100%' height='500' src='http://www.domain.de/index.php?sid=$sid'>";
```


----------



## Sasser (27. Mai 2009)

*Quellcode aus Iframe auslesen und übergeben*

Guten Tag!

Ich möchte gern den Quellcode eines Iframes auslesen und in diesem einen Teil filtern beginnend ab "&sid=" bis Ende und dieses dann an das zweite Iframe als SRC="" übergeben.

Kann mir jemand helfen dabei? Und ist das überhaupt möglich?


```
<iframe id="quelle" src="www.meinedomain.de" width="100%" height="300"></iframe>

<iframe id="ziel" src="" width="100%" height="300"></iframe>
```

//EDIT

So, ich bin fast fertig!

Ich habe den Inhalt des Iframes jetzt in JavaScript in eine Variable "html" geschrieben.

Ich muss nun noch "sid" herausbekommen. Diese beginnt im HTML-Quelltext ab "sid=" und ist 32 stellen lang.

Wie kann man dies in Javascript aus der Variable nun filtern?

Ich PHP ist das ganz einfach, aber wie mache ich das in JavaScript?


----------



## Quaese (28. Mai 2009)

Hi,

schau dir mal die Methoden match und search des *String*-Objekts an.

Ciao
Quaese


----------

