Для получения URL веб-страницы, загруженной в элемент `iframe`, вы можете воспользоваться свойством `src` самого элемента `iframe`, если хотите получить исходный адрес (начальный URL), который был установлен для `iframe`. Однако если внутри `iframe` происходила навигация (пользователь перешел по ссылкам, в результате чего адрес изменился), получение текущего адреса может быть ограничено политикой одного источника (same-origin policy).
Для доступа к исходному URL, используйте JavaScript:
```javascript
// получаем элемент iframe по id
var iframe = document.getElementById('myIframe');
// получаем URL iframe
var url = iframe.getAttribute('src');
console.log(url);
```
Чтобы получить текущий URL содержимого `iframe` (если это возможно):
```javascript
var iframe = document.getElementById('myIframe');
// Попытка получить текущий URL из содержимого iframe
try {
var currentUrl = iframe.contentWindow.location.href;
console.log(currentUrl);
} catch (e) {
console.error(e);
}
```
Этот код может не сработать, если `iframe` загружает содержимое с другого источника (домена), отличного от того, на котором расположена ваша страница, из-за политики безопасности браузеров same-origin policy, которая запрещает скриптам на одном источнике (домене) доступ к свойствам документа на другом источнике (домене).
Если `iframe` загружает содержимое с того же источника, что и ваша страница, текущий URL должен быть успешно получен.
В случае, если `iframe` загружает страницу с другого домена, и вы хотите получить текущий URL после навигации, нужно использовать механизмы взаимодействия между документами, такие как window.postMessage. Для этого вам потребуется добавить код на странице внутри `iframe`, который отправляет текущий URL обратно на родительский документ через `postMessage`. Однако, это подразумевает, что у вас есть возможность внести изменения в страницу, загруженную внутри `iframe`.
И не забывайте, что использование `postMessage` требует предусмотреть обработку сообщений и в родительском документе:
```javascript
// Обработка полученного сообщения
window.addEventListener('message', function(event) {
// Проверка источника сообщения
if (event.origin !== "http://домен-с-iframe.com") {
return; // или какая-то обработка для безопасности
}
console.log('Текущий URL в iframe:', event.data);
});
```
Таким образом, документ внутри `iframe` должен отправить сообщение следующим образом:
```javascript
// Отправляем текущий URL в родительский документ
window.parent.postMessage(window.location.href, "http://домен-родителя.com");
```