Прежде всего, то, что вы хотите сделать, будет возможно, только если источник вашего iframe указывает на тот же домен, что и родительское окно. Так что если у вас есть страница page.html, которая создает другую страницу iframed.html, то они оба должны находиться в одном домене (например, www.example.com/page.html и www.example.com/iframed.html).
Если это так, вы можете сделать следующее на странице iframed.html:
<script type="text/javascript">
window.onload = function() {
var links = document.getElementsByTagName('a');
for (var i=0, link; link = links[i]; i++) {
link.onclick = function() {
window.parent.location.href = '#' + encodeURIComponent(this.href);
}
}
}
</script>
Это будет сделано для того, чтобы при каждом нажатии на ссылку в iframed.html строка URL-адреса помещала URL-адрес ссылки в «хэш-тег» URL-адреса (например, www.example.com/page.html). # HTTP% 3A% 2F% 2Fwww.example.com% 2FanotherPage.html)
Очевидно, что вы должны иметь такой скрипт на каждой странице, которая должна отображаться внутри iframe.
Как только это произойдет, вы можете поместить этот фрагмент внутрь page.html, и тогда iframe автоматически загрузит URL в хеш-тег:
window.onload = function() {
var url = window.location.hash.substr(1);
if (url) {
document.getElementById('iframe').src = url;
}
}
К сожалению, я не запускал этот код для его тестирования, но он довольно прост и должен объяснить идею. Дайте мне знать, как это происходит!