MooToo: Fremde HTML-Dokument auslesen?

Hallo,

ich habe hier im Forum schon viele nützliche Sachen gefunden, aber jetzt habe ich eine Frage, die ich nicht gefunden habe:

Ich versuche mit JavaScript eine fremde HTML-Seite auszulesen. Dazu habe ich sie in einen IFrame geladen und dann versucht so auf sie zuzugreifen:

rows=parent.iframe.document.getElementsByTagName("table")[0].rows.length;

Wenn ich in den IFrame nun eine lokale Datei lade, zB test.html, dann geht es. Aber wenn ich eine externe Seite, zB http://de.selfhtml.org/html/index.htm in den IFrame lade, dann kommt:

uncaught exception: Permission denied to get property HTMLDocument.getElementsByTagName

Wie kann ich das beheben bzw. wenn das nicht so geht, wie geht es dann?

Vielen Dank für eure Hilfe und einen guten Rutsch ins neue Jahr,

MooToo

  1. Hi,

    Ich versuche mit JavaScript eine fremde HTML-Seite auszulesen.

    das sollte dir theoretisch nicht gelingen.

    Wenn ich in den IFrame nun eine lokale Datei lade, zB test.html, dann geht es. Aber wenn ich eine externe Seite, zB http://de.selfhtml.org/html/index.htm in den IFrame lade, dann kommt:
    uncaught exception: Permission denied to get property HTMLDocument.getElementsByTagName

    Du möchtest mal über die Same Origin Policy nachlesen.
    Es ist einem Javacript aus Sicherheitsgründen *generell* nicht erlaubt, auf Inhalte zuzugreifen, die von einer anderen Domain stammen als das Script selbst. Das lokale Filesystem zählt unter diesem Gesichtspunkt wie eine separate Domain.

    Wie kann ich das beheben bzw. wenn das nicht so geht, wie geht es dann?

    Das geht nur über einen Umweg. Ein serverseitiges Script (z.B. PHP) auf deinem eigenen Server kann die fremde Seite anfordern und dann an den Client weiterreichen. Dann scheint sie ja von deinem Server zu kommen, von wo auch das Javascript stammt.

    Aber: Gestattet der Inhaber der fremden Seite überhaupt, dass du seine Inhalte auf diese Weise ausliest und in einen anderen Kontext bringst?

    Gutes Neues schonmal,
     Martin

    --
    Lieber blau machen, als sich schwarz ärgern.
    1. Das geht nur über einen Umweg. Ein serverseitiges Script (z.B. PHP) auf deinem eigenen Server kann die fremde Seite anfordern und dann an den Client weiterreichen. Dann scheint sie ja von deinem Server zu kommen, von wo auch das Javascript stammt.

      Ok, das klingt gut. Aber es gibt noch ein Problem: Die Seite fragt nen Cookie ab. Dadurch dass es im IFrame war, war das kein Problem. Erst einmal in nem anderen Tab eingeloggt und dann kann der IFrame drauf zugreifen...Aber so, kann ich nem PHP-Skript Cookies mitgeben?

      Aber: Gestattet der Inhaber der fremden Seite überhaupt, dass du seine Inhalte auf diese Weise ausliest und in einen anderen Kontext bringst?

      Ich will die Daten nicht in einen anderen Kontext bringen sondern nur ein alert bekommen, wenn in einer Tabelle ein neuer Eintrag hinzukommt, damit ich dann nach sehen kann. Das wollte ich automatisieren, da ich ja sonst nicht jede Minute die Seite aktualisiere, aber gerne schnell erfahren möchte, wenn es etwas Neues gibt. Ich gebe die Inhalte also noch nicht mal wieder aus...

      1. Hallo MooToo

        Ich will die Daten nicht in einen anderen Kontext bringen sondern nur ein alert bekommen, wenn in einer Tabelle ein neuer Eintrag hinzukommt, damit ich dann nach sehen kann.

        Wie wäre es dann mit einem Greasemonkey-Script.

        Auf Wiederlesen
        Detlef

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist der Weg dahin!