まず、iframe のソースが親ウィンドウと同じドメインを指している場合にのみ、やりたいことが可能になります。そのため、別のページ iframed.html を iframe するページ page.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;
}
}
残念ながら、このコードを実行してテストしていませんが、非常に簡単で、アイデアを説明する必要があります。それがどうなるか教えてください!