Mit Javascript Objekt-Quellcode anzeigen

  • Themenstarter Themenstarter Max Matti
  • Beginndatum Beginndatum
M

Max Matti

Gast
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
 
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.
 
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
 
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.
 
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.
 
PHP:
<?
$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
 
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.
 
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
 
Zuletzt bearbeitet von einem Moderator:
Hi,

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

PHP:
<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
 

Neue Themen


Zurück
Oben