it-swarm.com.de

Unterschied zwischen document.referrer und window.parent.location.href

Hier ist die Situation: Es gibt eine Site, die dem Kunden gehört, also nicht in meiner Domain, sagen wir client.com.

Auf dieser Seite gibt es ein iframe, die Quelle dieses iframe ist ein einfacher js-Code, der ein anderes js lädt (client.js) - Dieser Code befindet sich in meiner Domain.

Ich muss nur die genaue URL der Seite ermitteln, auf der sich der Iframe befindet. Jetzt versuche ich, den Unterschied zwischen document.referrer und window.parent.location.href ohne glück.

Beide geben mir genau das, was ich brauche, aber ich kann nicht erkennen, was zuverlässiger ist? Gibt es eine Situation, in der einer funktioniert und ein anderer nicht?

21
k102

document.referrer gibt den URI der Seite an, die mit der aktuellen Seite verknüpft ist. Dies ist ein Wert, der für alle Seiten verfügbar ist, nicht nur für Frames.

window.parent gibt Ihnen das übergeordnete Frame und sein location ist sein URI.

Wenn Sie die URI des übergeordneten Frames suchen möchten, verwenden Sie window.parent.location.

32
deceze

Der Hauptunterschied besteht darin, dass document.referrer Auf die Seite verweist, die mit der aktuellen Seite im iframe verlinkt ist. Wenn Ihr Iframe-Inhalt Links enthält, mit denen Sie durch einige Seiten navigieren können, hat nur die erste Seite, die im Iframe geladen wird, den übergeordneten Frame-URI document.referrer. Jede Seite, die durch Klicken auf den Link innerhalb des Iframes geladen wird, enthält die URL der Seite, die den Link in document.referrer Enthält.

Gleichzeitig enthält window.parent.location Immer den URI der Seite im übergeordneten Fenster, auf den jedoch nur zugegriffen werden kann, wenn die Site Origin identisch ist. Lesen Sie über Richtlinien zum Entspannen der Site Origin , um zu sehen, was sowohl auf Ihrer Site als auch auf Ihrer Client-Site zu tun ist, damit Sie auf die Daten zugreifen können.

Abgesehen davon würde ich Ihrem Kunden lieber einen Serviceschlüssel oder Token geben, der seine Site zur Verwendung Ihrer iframed-App autorisiert und den Anrufer als Ihren Kunden authentifiziert, sodass Sie wissen, dass der Anruf von seiner Site stammt .

12
SWilk