peegee: Unbekannte Framegröße / Seite von fremden Server

Hallo zusammen,

jetzt plagt mich schon einige Zeit ein wirklich ärgerliches Problem.
Und zwar will ich eine Seite von einem fremden Server in mein Web einbinden, ohne das der Benutzer merken soll, das die Seite auf einem anderen Server liegt. (die Seite auf dem anderen Server gehört natürlich auch mir)

Nun ist diese Seite allerdings länger als mein Bildschirm, und jetzt habe ich ein paar Probleme mit der Darstellung.
Und zwar habe ich die Seite mittels einem iframe eingebunden. Wenn man diesen allerdings bei height=100% setzt nimmt er die Bildschirmhöhe als 100% an ich habe durch meine lange Liste wieder einen Scrollbalken in meiner Seite.

Da ich ja auch Zugang zu den Skripten auf dem anderen Server habe, hätte ich mir gedacht, ich lass mir die ungefähre Länge (durch die Anzahl der Tabellenzeilen) auf dem Server berechnen und übergeben.
Dann bin ich auf folgendes Problem gestoßen: Ich konnte die Variable (mit der berechneten Länge) aus dem Frame nicht an das Ursprunsfenster übergeben.

Ich bin echt am Ende mit meinem Latein,
wäre über eure Hilfe sehr dankbar!!

mfg
Peegee

  1. hi,

    Und zwar will ich eine Seite von einem fremden Server in mein Web einbinden, ohne das der Benutzer merken soll, das die Seite auf einem anderen Server liegt.

    Und warum soll der Nutzer das nicht merken?

    Da ich ja auch Zugang zu den Skripten auf dem anderen Server habe, hätte ich mir gedacht, ich lass mir die ungefähre Länge (durch die Anzahl der Tabellenzeilen) auf dem Server berechnen und übergeben.

    Ziemlicher Quark.
    Du weisst serverseitig garantiert nicht, wie groß Text bei mir auf dem Client dargestellt wird.

    Dann bin ich auf folgendes Problem gestoßen: Ich konnte die Variable (mit der berechneten Länge) aus dem Frame nicht an das Ursprunsfenster übergeben.

    Wenn du an deinem m.E. unsinnigen Vorgehen festhalten willst:
    http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe/
    http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe-2/

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hallo,
      ich weiß schon, dass diese lösung ziemlich "unvorteilhaft" ist. aber mir fällt einfach keine lösung ein, wie ich meine Seite so lange machen kann, dass kein Scrollbalken entsteht.
      Wer also einen besseren Lösungsvorschlag hat - ich bin für alles offen. ;)

      Und ob der Benutzer etwas davon merkt, dass die Seite von einem anderen Server kommt oder nicht, ist zweitrangig. (hab das nur so geschrieben)

      mfg
      peegee

      1. hallo,
        ich weiß schon, dass diese lösung ziemlich "unvorteilhaft" ist. aber mir fällt einfach keine lösung ein, wie ich meine Seite so lange machen kann, dass kein Scrollbalken entsteht.
        Wer also einen besseren Lösungsvorschlag hat - ich bin für alles offen. ;)

        Vorausgesetz du hast einen Webserver der url_fopen() (PHP) unterstützt wäre eine Möglichkeit die Webseite des "Fremden" Servers direkt auszulesen.

        Das Ergebnis kannst du dann per DOM-Manipulation in einen zweiten (unsichtbaren) IFrame stecken.
        Diesen kannst du über Script direkt ansprechen und die Größe auslesen.

        Die Größe übernimmst du einfach für deinen sichbaren IFrame.

        ----

        Funktioniert natürlich nur für die erste Ansicht der Webseite.
        Sobald die Inhalte der fremden Seite durch deren Verwendung im IFrame geändert werden kannst du wieder Scrollbalken bekommen.
        Das ist wiederum abhängig vom Aufbau der fremden Webseite.

        Wenn du die fremde Seite kennst weißt du ja wie Sie sich verhält.

        Greetz,
        Benedikt

        1. Yerf!

          Vorausgesetz du hast einen Webserver der url_fopen() (PHP) unterstützt wäre eine Möglichkeit die Webseite des "Fremden" Servers direkt auszulesen.

          Das Ergebnis kannst du dann per DOM-Manipulation in einen zweiten (unsichtbaren) IFrame stecken.
          Diesen kannst du über Script direkt ansprechen und die Größe auslesen.

          Weshalb so umständlich? Wenn man den Inhalt eh schon hat, kann man ihn doch auch in ein DIV einfügen. Dadurch verschwinden automatisch alle Probleme (ok, mann sollte vorher vielleicht das HTML-Grundgerüst entfernen, also nur den Inhalt von <body> einfügen). Aber der Div passt sich automatisch dem Inhalt an und man sieht auch nicht, dass der Inhalt eigentlich von einem anderen Server kam.

          Gruß,

          Harlequin

          1. Das wäre natürlich eine einfach Lösung. Aber wie bindet man das file in einem div ein?
            <div ???="http://www..........>

            1. Yerf!

              Das wäre natürlich eine einfach Lösung. Aber wie bindet man das file in einem div ein?
              <div ???="http://www..........>

              Das geht mit HTML alleine nicht. Wie benedik.s schon erwähnte benötigtst Du dazu PHP (oder eine andere serverseitige Programmiersprache). Mit dieser lädst Du die andere Seite in eine Variable, holst dir mit entsprechenden Stringoperationen (evtl. RegExp) den Teil inner halb von <body> heraus und gibst in dann z.B. mit echo (je nach Sprache) innerhalb eines <div> aus.

              Gruß,

              Harlequin

              1. morgen,

                danke mal für eure antworten.
                so weit, so gut, das mit der seite auslesen ist natürlich eine gute idee, aber ich möchte ja nicht das php-file auf dem anderen server an sich auslesen, sondern die sql-abfragen etc. sollen natürlich schon noch dort ausgeführt werden. geht das? oder steh ich jetzt schon wieder komplett auf der leitung?!

                mfg
                peegee

                1. hi,

                  so weit, so gut, das mit der seite auslesen ist natürlich eine gute idee, aber ich möchte ja nicht das php-file auf dem anderen server an sich auslesen, sondern die sql-abfragen etc. sollen natürlich schon noch dort ausgeführt werden. geht das?

                  Überleg mal: Wenn du die Seite mit deinem Browser abrufst, was passiert dann? Bekommst du dann den PHP-Code, oder die Ausgabe dieses Scriptes?
                  Na also.

                  oder steh ich jetzt schon wieder komplett auf der leitung?!

                  Klingt danach, ja.

                  gruß,
                  wahsaga

                  --
                  /voodoo.css:
                  #GeorgeWBush { position:absolute; bottom:-6ft; }
                  1. peegee möchte ja das die Seite ganz normal verwendet werden kann, wie als ob man diese direkt aufrufen würde.
                    Daher auch der Einbau im IFrame, dort kann man die entsprechende URL ja einfach angeben.
                    btw.: kann man eigentlich nicht direkt die länge der Scrollbalken eines IFrame auslesen? Dann hättest du garkein Problem...

                    Die Lösung mit dem DIV würde nur funktionieren, wenn man alle Anfragen über seinen eigenen Web-Server laufen lässt und dieser wiederum die Webseite des fremden Servers ausliest.
                    Selbst dann müsste man aber noch eventuelle CSS- oder JS-Dateien nachladen und einbinden, da der Web-Server ja nur den Quellcode selbst ausliest.

                    Greetz,
                    Benedikt

                    1. hi,

                      peegee möchte ja das die Seite ganz normal verwendet werden kann, wie als ob man diese direkt aufrufen würde.

                      Warum ruft er sie dann nicht "ganz normal" auf?

                      btw.: kann man eigentlich nicht direkt die länge der Scrollbalken eines IFrame auslesen? Dann hättest du garkein Problem...

                      Könnte man, wenn man nicht mit der Same Origin Policy in Konflikt käme.

                      Die Lösung mit dem DIV würde nur funktionieren, wenn man alle Anfragen über seinen eigenen Web-Server laufen lässt und dieser wiederum die Webseite des fremden Servers ausliest.
                      Selbst dann müsste man aber noch eventuelle CSS- oder JS-Dateien nachladen und einbinden, da der Web-Server ja nur den Quellcode selbst ausliest.

                      Wenn es doch sowieso beides "seine" Server bzw. Domains sind - dann sollte er sich lieber überlegen, die Inhalte gleich unterhalb der Zieldomain abzulegen, und sich den Zusatzaufwand irgendwelcher Bastellösungen ersparen.

                      gruß,
                      wahsaga

                      --
                      /voodoo.css:
                      #GeorgeWBush { position:absolute; bottom:-6ft; }