Gibt es eine einfache Möglichkeit, die aktuelle URL von einem Iframe abzurufen?
Der Betrachter würde mehrere Websites durchlaufen. Ich vermute, ich würde etwas in Javascript verwenden.
Gibt es eine einfache Möglichkeit, die aktuelle URL von einem Iframe abzurufen?
Der Betrachter würde mehrere Websites durchlaufen. Ich vermute, ich würde etwas in Javascript verwenden.
Antworten:
Aus Sicherheitsgründen können Sie die URL nur so lange abrufen, wie der Inhalt des Iframes und das referenzierende Javascript von derselben Domain bereitgestellt werden. Solange das stimmt, wird so etwas funktionieren:
document.getElementById("iframe_id").contentWindow.location.href
Wenn die beiden Domänen nicht übereinstimmen, treten Sicherheitsbeschränkungen für Cross-Site-Referenzskripte auf.
Siehe auch Antworten auf eine ähnliche Frage .
sandbox="allow-same-origin"
dem iFrame hinzufügen?
Wenn Ihr Iframe von einer anderen Domain stammt (domänenübergreifend), helfen Ihnen die anderen Antworten nicht weiter. Sie müssen lediglich Folgendes verwenden:
var currentUrl = document.referrer;
und - hier hast du die Haupt-URL!
Ich hoffe, dies wird einigen helfen, da ich in Ihrem Fall genau das gleiche Problem hatte und nur localstorage verwendet habe, um die Daten zwischen dem übergeordneten Fenster und dem Iframe zu teilen. Im übergeordneten Fenster können Sie also:
localStorage.setItem("url", myUrl);
Und in Code, in dem die Iframe-Quelle nur diese Daten von localstorage erhält:
localStorage.getItem('url');
Hat mir viel Zeit gespart. Soweit ich sehen kann, ist die einzige Bedingung der Zugriff auf den übergeordneten Seitencode. Hoffe das wird jemandem helfen.
Wenn Sie sich im iframe-Kontext befinden,
du könntest es tun
const currentIframeHref = new URL(document.location.href);
const urlOrigin = currentIframeHref.origin;
const urlFilePath = decodeURIComponent(currentIframeHref.pathname);
Wenn Sie sich im übergeordneten Fenster / Frame befinden, können Sie die Antwort von https://stackoverflow.com/a/938195/2305243 verwenden
document.getElementById("iframe_id").contentWindow.location.href
Ich hatte ein Problem mit Blob URL Hrefs. Mit einem Verweis auf den Iframe habe ich gerade eine URL aus dem src-Attribut des Iframes erstellt:
const iframeReference = document.getElementById("iframe_id");
const iframeUrl = iframeReference ? new URL(iframeReference.src) : undefined;
if (iframeUrl) {
console.log("Voila: " + iframeUrl);
} else {
console.warn("iframe with id iframe_id not found");
}