Existe-t-il un moyen simple d'obtenir l'URL actuelle à partir d'un iframe?
Le spectateur passerait par plusieurs sites. J'imagine que j'utiliserais quelque chose en javascript.
Pour des raisons de sécurité, vous ne pouvez obtenir l'URL que tant que le contenu de l'iframe, ainsi que le code JavaScript de référencement, sont servis à partir du même domaine. Tant que cela est vrai, quelque chose comme cela fonctionnera:
document.getElementById("iframe_id").contentWindow.location.href
Si les deux domaines ne concordent pas, vous rencontrerez des restrictions de sécurité de script de référence entre sites.
Voir aussi réponses à une question similaire .
Si votre iframe provient d'un autre domaine, (cross domain), les autres réponses ne vous aideront pas ... vous devrez simplement utiliser ceci:
var currentUrl = document.referrer;
et - ici vous avez l'URL principale!
J'espère que cela aidera certains comment, dans votre cas, j'ai souffert du même problème et que je viens d'utiliser localstorage pour partager les données entre la fenêtre parente et l'iframe. Donc, dans la fenêtre parent, vous pouvez:
localStorage.setItem("url", myUrl);
Et dans le code où la source iframe est simplement extraire ces données de localstorage:
localStorage.getItem('url');
M'a sauvé beaucoup de temps. Autant que je sache, la seule condition est l'accès au code de la page parent. J'espère que cela aidera quelqu'un.
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/230524 , qui est
document.getElementById("iframe_id").contentWindow.location.href