Получить текущий URL-адрес от IFRAME
Есть ли простой способ получить текущий URL из iframe?
Зритель будет проходить через несколько сайтов.
Я предполагаю, что я буду использовать что-то в javascript.
Ответы
Ответ 1
По соображениям безопасности вы можете получить только URL-адрес до тех пор, пока содержимое iframe и ссылка на javascript не будут отправлены из одного домена. Пока это правда, что-то вроде этого будет работать:
document.getElementById("iframe_id").contentWindow.location.href
Если два домена несовместимы, вы столкнетесь с ограничениями на использование скриптов для ссылок на сайты.
См. также ответы на аналогичный вопрос.
Ответ 2
Если ваш iframe из другого домена (перекрестный домен), другие ответы не помогут вам... вам просто нужно будет использовать это:
var currentUrl = document.referrer;
и - здесь у вас есть главный url!
Ответ 3
Надеюсь, это поможет некоторым, как в вашем случае,
Я страдал одной и той же проблемой и просто использовал localstorage для обмена данными между родительским окном и iframe.
Поэтому в родительском окне вы можете:
localStorage.setItem("url", myUrl);
И в коде, где источник iframe просто получает эти данные из localstorage:
localStorage.getItem('url');
Сохранял меня много времени.
Насколько я вижу, единственным условием является доступ к исходному коду страницы.
Надеюсь, это поможет кому-то.
Ответ 4
Если вы находитесь в контексте iframe,
ты мог бы сделать
const currentIframeHref = new URL(document.location.href);
const urlOrigin = currentIframeHref.origin;
const urlFilePath = decodeURIComponent(currentIframeHref.pathname);
Если вы находитесь в родительском окне/фрейме, то вы можете использовать fooobar.com/info/85689/... ответ, который
document.getElementById("iframe_id").contentWindow.location.href