Получить текущий 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