如何访问iframe history.length

时间:2011-12-09 17:51:32

标签: javascript iframe browser-history

我想了解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存储访问过的页面的历史记录与浏览器选项卡窗口相同吗?

1 个答案:

答案 0 :(得分:-1)

每个iframe都作为自己的实体存在:一个窗口和文档本身。 iframe的历史与父母的历史无关;在iframe中加载的页面不计入父级的历史记录。您可以通过以下方式访问iframe自己的历史记录:

document.getElementById("myframe").contentWindow.history.length

(这假设您的iframe是从父级加载的,如您的示例所示。)