Dies ist eine sehr interessante Frage. Sie haben Recht, die gleiche Herkunftsrichtlinie verbietet das Einfügen von JS. Aber Google Analytics hat einen Vorteil: Es befindet sich bereits auf Ihrer Website (der Tracker-Code).
So funktioniert es also (soweit ich sehen kann):
- Wenn Sie die In-Page-Analyse öffnen, gelangen Sie zunächst zu https://www.google.com/analytics/reporting/iyp_launch
- Diese Seite leitet zu Ihrer Website weiter und fügt der URL eine Google-Sitzung hinzu (wie http://example.com/#gaso=THESESSION
- Der Tracker prüft nun, ob der Referrer iyp_launch ist und gaso gesetzt ist. Wenn ja, lädt er nicht nur den Tracker, sondern injiziert auch das JS, das für die Abfrage weiterer Daten und das Rendering der Overlays benötigt wird. Auf diese Weise wird das JS innerhalb des Frames (oder Fensters) ausgeführt und umgeht die same-origin policy.
- Da Google Anaytics Ihren Besuch bereits verfolgt (d. h. Sie als denselben Nutzer identifiziert, der die vorherige Seite angesehen hat), kann es von da an das zusätzliche JS zusammen mit dem Tracker einfügen, bis Ihr Besuch beendet ist (d. h. Sie die Seite schließen). Auf diese Weise können die Overlays erneut gerendert werden, nachdem Sie auf einen Link geklickt haben.
Ich denke, die Quintessenz ist also folgende: Dinge wie In-Page-Analysen können durchgeführt werden, wenn der Eigentümer der Website Ihnen bereits vertraut hat, indem er ein von Ihnen kontrolliertes Skript in seine Website einfügt (dies ist ein gutes Beispiel dafür, warum man sehr vorsichtig sein sollte, bevor man so etwas tut). Wenn Sie keinen derartigen Zugriff auf die Website haben, ist es möglicherweise unmöglich, die Same-Origin-Policy zu umgehen - zumindest fällt mir keine andere Möglichkeit ein (außer vielleicht, alle Anfragen über Ihren Server zu leiten, aber das führt zu anderen großen Problemen).