godfather: javascript cross domain zugriff

Hi,

ich habe ein sehr interessantes Szenario und versuche Javascript Zugriffe über Domaingrenzen hinwegzubekommen.

Situation:

Ich besitze Domain A.

Es gibt eine Domain B eines externen Dienstleisters, auf die ich keinen wirklichen Einfluss habe.

Jetzt wird innerhalb meiner Seite auf Domain A, ein 1x1 Pixel großer Iframe erstellt, der eine Seite von Domain B läd. Domain B läd für diese Seite serverseitig eine bestimmte Seite von Domain A und zeigt deren Content an. Der Content sieht also so aus, als wäre er zu 100% von Domain B, obwohl er eigentlich auf meiner Domain erstellt wurde.

Problem: Ich habe auf der Seite von Domain A, die den Iframe einbindet einen Button, der bei einem Click die Seite von Domain B anzeigen soll. Die Seite von Domain B soll dann quasi die neue Hauptseite sein. Dabei darf auf keinen Fall die URL vom iframe ein zweites Mal geladen werden. Also, die URL darf nicht noch mal aufgerufen werden. Das hat was damit zu tun, dass in der URL eine ID drinsteht, und diese URL mit der gleichen ID darf nur einmal aufgerufen werden, sonst gibt es nen Fehler.

Ist sowas möglich? Ich habe vollen Zugriff auf den Inhalt der Seite von Domain B. Kann dort also alles mögliche mit Javascript und HTML machen. Nur wird der Inhalb komplett im Namen von Domain B angezeigt.

Wäre super wenn mir hier jemand helfen könnte.

Vielen Dank und schöne Grüße
godfather

  1. Hi, godfather!

    Auch bei iframes gilt (von gewissen Einschränkungen abgesehen) die Same Domain Policy, mal ganz abgesehen davon, dass sie noch andere Nachteile haben.

    Wenn Du mit JavaScript Inhalte domänenübergreifend transportieren möchtest, bietet sich JSONp als Methode an. Diese besteht im Wesentlichen darin, einen Script-Tag von der fremden Domain einzubinden (ggf. kann man dabei noch den Namen des Callbacks übergeben, der innerhalb dieses Scripts aufgerufen werden soll). In dem Script selbst steht dann im Wesentlichen nur noch

    aufruf({ JSON-Objekt mit Daten });

    Gruß, LX

    --
    RFC 1925, Satz 1: Es muss funktionieren.
    1. Hi,

      danke. Werde mir das JSON mal ansehen. Mal sehen ob mir das weiterhilft.

      Schöne Grüße
      godfather

      1. Nicht nur JSON (das ist nur das Format, in dem die Daten übergeben werden), sondern JSONp (das "p" steht für padding, also von einem Funktionsaufruf umschlossen).

        Gruß, LX

        --
        RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.
  2. Moin!

    Problem: Ich habe auf der Seite von Domain A, die den Iframe einbindet einen Button, der bei einem Click die Seite von Domain B anzeigen soll. Die Seite von Domain B soll dann quasi die neue Hauptseite sein. Dabei darf auf keinen Fall die URL vom iframe ein zweites Mal geladen werden. Also, die URL darf nicht noch mal aufgerufen werden. Das hat was damit zu tun, dass in der URL eine ID drinsteht, und diese URL mit der gleichen ID darf nur einmal aufgerufen werden, sonst gibt es nen Fehler.

    Ich sehe jetzt nicht, was dich daran hindert, das src-Attribut aus deinem eigenen IFrame auszulesen und, bereinigt um diese ID, die sich nicht wiederholen darf, als location.href zu setzen.

    Bzw. noch einfacher: Da dein IFrame seine URL ja irgendwie reingeschrieben bekommt von deinem Server, sei es statisch oder dynamisch durch irgendeine Erzeugung: Was spricht dagegen, diesem Button dieselbe URL reinzuschreiben, nur eben ohne ID?

    Ist sowas möglich? Ich habe vollen Zugriff auf den Inhalt der Seite von Domain B. Kann dort also alles mögliche mit Javascript und HTML machen. Nur wird der Inhalb komplett im Namen von Domain B angezeigt.

    Eine Seite, die in einem 1x1 Pixel großen IFrame "angezeigt" wird, mit "Inhalt" zu befüllen ist reichlich sinnlos, oder?

    - Sven Rautenberg

    1. Eine Seite, die in einem 1x1 Pixel großen IFrame "angezeigt" wird, mit "Inhalt" zu befüllen ist reichlich sinnlos, oder?

      Du hast keien Ahnung von SEO oder - da ist es teilweise sogar üblich die komplette Seitenstruktur 1:1 zu kopieren und der Suchmaschien vorzusetzen - der echte Benutzer bekommt dann eine JavaScript-Umleitung auf ein Frameset wo die "echte Seite" zu sehen ist und in einem 0x100% großen Frame die andere Seite angezeigt wird :)

      1. Moin!

        Eine Seite, die in einem 1x1 Pixel großen IFrame "angezeigt" wird, mit "Inhalt" zu befüllen ist reichlich sinnlos, oder?

        Du hast keien Ahnung von SEO oder - da ist es teilweise sogar üblich die komplette Seitenstruktur 1:1 zu kopieren und der Suchmaschien vorzusetzen - der echte Benutzer bekommt dann eine JavaScript-Umleitung auf ein Frameset wo die "echte Seite" zu sehen ist und in einem 0x100% großen Frame die andere Seite angezeigt wird :)

        Nur weil irgendwas als SEO betitelt wird, muss das ja nicht heißen, dass es sinnvoll und wirksam ist. Schlangenöl wirkt auch prima.

        - Sven Rautenberg

        1. Nur weil irgendwas als SEO betitelt wird, muss das ja nicht heißen, dass es sinnvoll und wirksam ist.

          Ich hab das zynismus-Element um meinen Beitrag vergessen :)

          Natürlich ist auch mir klar, dass SEO sich fachlich teilweise irgendwo zwischen NLP und Astrologie befindet.

          Schlangenöl wirkt auch prima.

          Der Fachmann schwört auf WD40.

    2. Ich sehe jetzt nicht, was dich daran hindert, das src-Attribut aus deinem eigenen IFrame auszulesen und, bereinigt um diese ID, die sich nicht wiederholen darf, als location.href zu setzen.

      Bzw. noch einfacher: Da dein IFrame seine URL ja irgendwie reingeschrieben bekommt von deinem Server, sei es statisch oder dynamisch durch irgendeine Erzeugung: Was spricht dagegen, diesem Button dieselbe URL reinzuschreiben, nur eben ohne ID?

      Hi,

      Hintergrund ist, dass die Seite im Iframe sehr lange braucht zum laden und ich will sie quasi vorher schon mal laden. Daher die Einbindung als unsichtbaren Iframe und Anzeigen bei einer Aktion.

      Die ID weglassen geht nicht. Die Seite kann nur einmal und nur mit einer ID aufgerufen werden.

      Ich weiß, dass Setup ist sehr umständlich, aber es geht nicht anders. Habe weiter unten den Tipp bekommen, mir mal JSON anzusehen. Mal schauen ob das hilft.

      Trotzdem vielen Dank schon mal. Weitere Ideen sind aber gerne gesehen.
      Gruß godfather

      1. Hintergrund ist, dass die Seite im Iframe sehr lange braucht zum laden und ich will sie quasi vorher schon mal laden. Daher die Einbindung als unsichtbaren Iframe und Anzeigen bei einer Aktion.

        Was ist, wenn die Aktion dann doch nicht ausgeführt wird? Kostet das nicht massig Traffic?.

        Ich weiß, dass Setup ist sehr umständlich, aber es geht nicht anders. Habe weiter unten den Tipp bekommen, mir mal JSON anzusehen. Mal schauen ob das hilft.

        Es muss nicht JSON sein, XML tuts auch - auch wenn Sven sicher gleich sagen wird dass das eine Menge overhead bedeutet - aber so viel ist das auch nicht.