Есть ли у вас контроль над теми страницами, которые загружаются внутри iframe?Если это так, то вы можете просто добавить ко всем из них js-файл, который выполняет только это:
parent.loaded(document.location.href);
Затем на главной странице, где у вас есть iframe, есть:
function loaded(url) {
alert('"' + url + '" was loaded');
}
Чтобы это работало, вам также необходимо обслуживать все страницы в iframe из того же домена, что и главная страница.
EDIT
Поскольку вы обслуживаете страницы iframe из того же домена, что иВо-первых, вам нужно контролировать сервер, обслуживающий страницы, поэтому даже если вы не можете изменить код, вы можете изменить его во время выполнения, когда сервер вернет содержимое.Например, вы можете вернуть измененную версию js-файла, который всегда загружается с чем-то вроде parent.loaded (document.location.href); .
Это может показаться более сложным, чем использованиеsetTimeout, но это еще одно решение.
Еще одна вещь, которую вы можете сделать, поскольку у вас есть доступ к dom, - это зарегистрироваться на событие onunload , чтобы вы могли использовать setTimeoutкогда вы точно знаете, что страница будет перезагружена, это предотвратит таймер остановки без остановки.
С учетом всего вышесказанного, может быть, это не лучший способ реализовать этот мониторинг?Может быть, вы можете реализовать это с расширением браузера?Те, кому дано знать об изменениях в расположении всех документов.
Другое правка
Возможно, вы захотите попробовать использовать это событие загрузки для фреймов