# Mit Javascript Objekt-Quellcode anzeigen



## Max Matti (3. Apr 2011)

Hi,

Ich weiss zwar, dass hier nicht viele sind, aber nachdem in anderen Foren noch niemand geantwortet hat:

Ich habe in einer externen Seite (http://[...]) einen DIV, den ich mith. von HTML/Javascript einzeln anzeigen möchte, ohne den Rest der Seite, kann mir da jemand weiterhelfen?

danke im Voraus,
Max


----------



## Tomate_Salat (7. Apr 2011)

Ajax. Ein direktes zugreifen wird u.U. nicht möglich sein. Soetwas wird gerne blockiert, allerdings könntest du ein PHP-Script(wenn möglich) auf deinem Server hinterlegen, welches die Seite einliest (sofern erlaubt). Dieses rufst du mittels Ajax auf und lässt es dir als HTML zurückliefern. Den div könntest du dir dann über JS herauspicken (am einfachsten, wenn er eine ID besitzt). Den Inhalt des divs als HTML zurückliefern lassen und auf deiner Seite anzeigen. Fertig.


----------



## Max Matti (9. Apr 2011)

Hi,

Also sollte ich mith. von PHP die Seite auf meinem Server speichern, mith. von js mein Teil rauslesen und das dann mith. von PHP wieder in die Seite einbauen?

lg
Max


----------



## Tomate_Salat (12. Apr 2011)

du sollst nicht speichern, du sollst auslesen. Das Problem an Ajax ist, dass der Zugriff auf andere Server unterbunden wird. Somit musst du das Dokument auf deinem eigenen Webserver bereitstellen. Deswegen liest du über PHP die andere Seite ein und gibst Sie dann an den AJAX-Request zurück. Gegen cachen ist nichts einzuwenden, aber ein persistentes Speichern der fremden Homepage brauchts dann normal doch nicht.


----------



## Max Matti (13. Apr 2011)

Ok danke erstmal, aber wie krieg ich die Datei in den String o.Ä.?
Welche Funktion kann ich dafür nutzen? Hab im netz keine gefunden.


----------



## Spin (17. Apr 2011)

```
<?
$temp = "http://www.java-forum.org";
$page = file_get_contents($temp,'r');
?>
```

Damit hast du schon mal den Inhalt.
Nun noch javascript.

Geht natürlich nur wenn fsockopen nicht gesperrt ist. Sonst bekommst du ein don't access. Fehler.

grüße spin


----------



## Yoshi- (17. Apr 2011)

Im gegensatz zu fopen gibt es bei file_get_contens keinen mode parameter. Sprich das "r" muss weg.
Und man sollte natürlich den Inhalt auch mit echo ausgeben.


----------



## Max Matti (17. Apr 2011)

Hi,

Wie ich den Code von PHP in JS kriege, weiss ich (echo('var a = ' . $page); ), daher erstmal danke, ich glaube den Rest kriege ich hin, sobald der Teil fertig ist, stelle ich ihn hier hoch.

LG
Max


----------



## Max Matti (17. Apr 2011)

Hi,

Nächste Frage :
Der Output von derm Quellcode, den ich jetzt hab, sieht komisch aus...
Hier der Code (hoffentlich verständlich genug kommentiert):


```
<html>
 <head></head>
 <body>
  <?php
	//Nehmen wir mal diese Seite und geben die Beiträge aus:
	$temp = 'http://www.java-forum.org/fuer-verirrte-fragen-javascript/115980-javascript-objekt-quellcode-anzeigen.html';
	//Wie oben beschrieben String laden...
	$page = file_get_contents($temp);
	//"post_message_" ist in jeder id von den divs, die die Beiträge enthalten, daher kann man hier trennen:
	$array = explode($temp, 'post_message_');
	//Teil eins brauchen wir nicht, das ist nur Quellcode, daher wegschneiden:
	$array[0] = '';
	foreach ($array as $i) {
		$beitrag[$i-1] = $array[$i];
	}
	//Restlichen Quellcode wegschneiden:
	foreach ($beitrag as $i) {
		//Absätze...
		str_replace($beitrag[$i], '\n', '');
		str_replace($beitrag[$i], '<br />', '\n');
		//Kommentare...
		$a = true;
		while ($a) {
			//Wenn Kommentar enthalten
			if (strpos($beitrag[$i], '<!--') != -1) {
				//Dann Kommentar entfernen:
				//String 1: Anfang bis Kommentaranfang
				$teil1 = substr($beitrag[$i], 0, strpos($beitrag[$i], '<!--'));
				echo('Teil'.$i.'-1: '.$teil1);
				//String 2: Kommentarende bis Ende
				$teil2 = substr($beitrag[$i], strpos($beitrag[$i], '-->')+2, strlen($beitrag[$i]));
				echo('Teil'.$i.'-2: '.$teil2);
				//Dann zusammenfügen...
				$beitrag[$i] = $teil1 . $teil2;
				//...und nächsten Kommentar suchen.
			} else {
				//Wenn kein Kommentar enthalten, dann nichts wie raus aus der Scheife!
				$a = false;
			}
		}
	}
  ?>
 </body>
</html>
```

Die Echos in denen $teil1 und $teil2 enthalten sind, waren zur Kontrolle gedacht.
Letztendlich kamen scheinbar unendlich viele leere $teil1 und $teil2 raus, ich hab das ganze dann nach 2-3min abgebrochen. 
Kann mir hier jemand weiterhelfen?

lg
Max


----------

