Как узнать URL страница с iframe?

Вот несколько способов, как можно узнать URL страницы, которая загружена в iframe, с использованием JavaScript:

1. Получить URL из свойства contentWindow.location.href объекта iframe:

var iframe = document.getElementById('myIframe');
var iframeUrl = iframe.contentWindow.location.href;
console.log(iframeUrl);

Здесь мы получаем элемент iframe с помощью метода getElementById() и сохраняем его в переменную iframe. Затем мы обращаемся к свойству contentWindow.location.href объекта iframe, чтобы получить URL загруженной страницы. Конечно, перед этим необходимо иметь доступ к iframe.

2. Если iframe находится в том же домене, можно использовать свойство src элемента iframe:

var iframe = document.getElementById('myIframe');
var iframeUrl = iframe.src;
console.log(iframeUrl);

Здесь мы используем свойство src элемента iframe, чтобы получить URL, однако этот способ работает только в том случае, если iframe находится в том же домене.

3. Если страница, загруженная в iframe, находится на другом домене (то есть срабатывает политика безопасности Cross-Origin Resource Sharing - CORS), вам может понадобиться сотрудничество владельца этой страницы. Они должны отправить сообщение обратно в родительское окно с помощью метода postMessage():
В родительском окне:

window.addEventListener('message', function(event) {
  var iframeUrl = event.data;
  console.log(iframeUrl);
});

В iframe-странице:

var parentWindow = window.parent;
var iframeUrl = window.location.href;
parentWindow.postMessage(iframeUrl, '*');

Здесь мы добавляем слушатель событий message на окно родительской страницы, чтобы прослушивать сообщения, отправленные iframe-страницей. В iframe-странице мы получаем доступ к родительскому окну с помощью window.parent и используем метод postMessage() для отправки URL родительскому окну.

Важно отметить, что последний способ требует сотрудничества со стороны iframe-страницы и, конечно, требует корректного использования политики безопасности.