我想了解iframe的历史。我已经创建了localhost服务器上的页面A和B.使用iframe我首先加载页面然后动态地将iframe src更改为页面B.当访问两个不同的URL时,这是否意味着history.length
= 2?它在没有iframe的情况下尝试。但是,通过使用iframe,我只返回值1?
<body>
<div>
<iframe src='/pageA.php' id='myframe' onload='checkHistory()' ></iframe>
</div>
</body>
</html>
<script language="javascript" type="text/javascript" >
function checkHistory()
{
document.getElementById('myframe').src='/pageB.php';
alert("Number of URLs in history list: " + history.length);
}
</script>
我是否正确访问了iframe的history.lenght值,或者是否必须像document.getElementById('myframe').history.length
那样访问iframe而不是通用的history.length
属性?
这让我感到困惑。我尝试在打开页面B之前存储history.length
值并比较值但仍然没有运气。必须有一种方法,iframes存储访问过的页面的历史记录与浏览器选项卡窗口相同吗?
答案 0 :(得分:-1)
每个iframe
都作为自己的实体存在:一个窗口和文档本身。 iframe的历史与父母的历史无关;在iframe中加载的页面不计入父级的历史记录。您可以通过以下方式访问iframe自己的历史记录:
document.getElementById("myframe").contentWindow.history.length
(这假设您的iframe是从父级加载的,如您的示例所示。)