126 votes

Obtenir l'URL actuelle à partir d'IFRAME

Existe-t-il un moyen simple d'obtenir l'URL actuelle à partir d'une iframe ?

Le téléspectateur parcourrait plusieurs sites. Je suppose que j'utiliserais quelque chose en javascript.

25voto

ParPar Points 1584

Si votre iframe provient d'un autre domaine, (cross domain), les autres réponses ne vont pas vous aider... vous aurez simplement besoin d'utiliser ceci :

var currentUrl = document.referrer;

et - ici vous avez l'url principale !

5voto

Rob Points 1464

J'ai eu un problème avec blob url hrefs. Donc, en référence à l'iframe, je viens de produire une url à partir de l'attribut src de l'iframe :

    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");
    }

4voto

Lin Dong Points 68

Si vous êtes dans le contexte iframe,

vous pourriez faire

const currentIframeHref = new URL(document.location.href);
const urlOrigin = currentIframeHref.origin;
const urlFilePath = decodeURIComponent(currentIframeHref.pathname);

Si vous êtes dans la fenêtre/le cadre parent, vous pouvez utiliser la réponse de https://stackoverflow.com/a/938195/2305243, qui est

document.getElementById("iframe_id").contentWindow.location.href

2voto

Beny Points 151

J'espère que cela aidera à savoir comment dans votre cas, j'ai souffert avec exactement le même problème, et j'ai juste utilisé localstorage pour partager les données entre la fenêtre parent et iframe. Donc, dans la fenêtre parent vous pouvez :

localStorage.setItem("url", myUrl);

Et dans le code où iframe source est juste obtenir ces données de localstorage :

localStorage.getItem('url');

Ça m'a fait gagner beaucoup de temps. Pour autant que je puisse voir, la seule condition est l'accès au code de la page parente. J'espère que ça aidera quelqu'un.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X