PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Quelltext mittels JS auslesen


@Work
28.08.2007, 10:52:30
Hallo,

ich möchte den Quelltext aus einem anderen Fenster bzw. TAB per Link auslesen

wenn ich das

javascript:(function(){c=unescape(document.documentElement.innerHTML); c=c.replace(/>/g,'|');c=c.replace(/</g,'|');x=window.open();x.document.write('<html><head><title>Source of Page</title></head><body><textarea cols="80" rows="20">' + c + '</textarea></body></html>');x.document.close();})();

in die Adresszeile eingebe, bekomme ich den Qelltext.

Jetzt möchte ich aber über eine Eigene Seite per Link den Quelltext abfragen und in einem Textfeld anzeigen, in etwa so

<html><head><title>Test</title>
<script type="text/javascript">

function insert ()
{a=window.location = "http://www.xyz.de";c=unescape(window.document.documentElement.innerHTML);c=c.replace(/>/g,'|');c=c.replace(/</g,'|');x=document.write('<html><head><title>Source of Page</title></head><body><textarea cols="80" rows="20"><pre>' + c + '</pre></textarea></body></html>');x.document.close();}

</script>
</head><body>
<a href="javascript:insert()">Quelltext laden</a>
</body></html>

leider bekomme ich dann nur den Text des eigenen Scripts angezeigt.

Ich hoffe das ist verständlich und jemand kann mir helfen?!

MfG

z0iD
28.08.2007, 11:00:32
Ohne mich jetzt eingehend mit dem JS-Geschwurbel auseinandergesetzt zu haben, bezweifle ich ernsthaft, dass das ich möchte den Quelltext aus einem anderen Fenster bzw. TAB per Link auslesen überhaupt von einem gescheiten Browser erlaubt wird, da ich so ein Verhalten als eindeutige Sicherheitslücke bezeichnen würde.

@Work
28.08.2007, 11:08:16
mit php ist es doch auch möglich,

erst einlesen:

<html>
<head>
<title>Quelltext</title>
</head>
<body bgcolor="#FFFFFF">
<p>Adresse<br>
</p>
<form method="post" action="sourcecode.php">
<p>
<input type="text" name="adresse">
</p>
<p>
<input type="submit" name="Abschicken" value="Abschicken">
</p>
</form>
</body>
</html>


und dann ausgeben:(sourcecode.php)
<html>
<head>
<title>Quelltext</title>
</head>
<body bgcolor="#FFFFFF">
<?
$url = $adresse;
$lines = file($url);
echo "<pre>";
foreach($lines as $lineno=>$line) {
echo $lineno, ". ", htmlentities($line);
}
echo "</pre>";
?>
</body>
</html>


Warum also nicht mittel JS?

MfG

z0iD
28.08.2007, 11:46:44
Weil Du in Deinem PHP Quelltext ja einen Dokument an einer gegebenen URL ausliest. Das Skript tut hier nichts anderes als ein Browser auch. Ich denke das das wohl auch mit JS gehen wird.

Wenn ich Dich jedoch richtig verstanden habe, dann willst Du versuchen mit Deinem JS eine Seite auszulesen, die der Benutzer Deiner JS-Seite in einem anderen Tab geöffnet hat, ohne dass Dir jemand die URL nennt.
Das ist m. M. n. ein ganz anderer Schuh!

@Work
28.08.2007, 11:59:09
hm,
ich möcht erreichen, das der Nutzer der Seite mit dem JS die Möglichkeit hat, per Klick
den Quelltext (siehe erstes Script) einer URL in einem Fenster darzustellen....


.... es ist zum haareraufen

MfG



Die URL ist bekannt

z0iD
28.08.2007, 12:19:47
Die URL ist bekannt
AAAACHSO! Dann habe ich nichts gesagt. Entschuldige.
Mit JS kann ich Dir aber leider nicht helfen, aber warum muss es unbedingt mit JS geschehen?!

Raketenmann
28.08.2007, 12:31:57
Du musst mit deiner Seite ein Fenster öffnen und die zweite Seite mit dem anzuzeigenden Quelltext in dieses Fenster laden. Dann kannst du darin auf die Elemente der zweiten Seite zugreifen und auch den Quelltext ausgeben...

...das funktioniert aber nur dann, wenn sich beide Dateien auf dem selben Server befinden. Einen Javascript-Quellext-Auslese-Zugriff auf den Fremdserver www.xyz.de kannst du vergessen.

Habe ich auch schon mal probiert und letztlich aufgegeben, das Stichwort heißt "Javascript Origin Policy" - kannst ja mal bei google danach suchen.

@Work
28.08.2007, 13:23:10
erstmal thx für die schnellen Antworten

@ Raketenmann: aber wenn ich das erste Script (siehe 1.Post) komplett in die Adresszeile
meines Explorers eingebe, egal auf welcher Seite ich mich befinde, dann bekomme ich den Quelltext von der aktuellen Seite angezeigt....
....wieso geht das nicht über ein z.Bsp. Formular?

...ich möchte doch nur den Quelltext...


MfG

Raketenmann
28.08.2007, 14:28:35
...., das Stichwort heißt "Javascript Origin Policy" - kannst ja mal bei google danach suchen.


Ich kann dir das leider auch nicht genauer erklären, aber wenn dich mein Versuch interessiert (war mein erstes Thema in diesem Forum ;-) ):
http://www.selfphp.de/forum/showthread.php?t=7952

Ist schon ein bißchen her, aber wie es scheint, ist das Problem immer noch aktuell ;-)