iframe中的window.replaceState导致父窗口滚动跳转?

时间:2014-08-12 16:28:03

标签: javascript html iframe html5-history

在Google Chrome& Safari,其父页面包含iframe

<html>
    <title>Parent</title>
    <body style="font-size:90px;">
        <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.</p>

        <p>Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit.</p>

        <iframe src="frame1.html" frameborder="0"></iframe>

        <p>Nullam quis risus eget urna mollis ornare vel eu leo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur blandit tempus porttitor. Maecenas faucibus mollis interdum.</p>

        <p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec ullamcorper nulla non metus auctor fringilla. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Vestibulum id ligula porta felis euismod semper.</p>
    </body>
</html>

如果iframe使用带有哈希的window.replaceState

<html>
    <head>
        <title>Frame</title>
        <script>
        window.onload = function() {
            window.history.replaceState(null, null, '#')
        }
        </script>
    </head>
    <body style="background-color:purple;font-size:20px;"></body>
</html>

...在窗口加载时,父窗口将跳转到iframe的滚动位置:

iframe bug demo

我读到的关于window.replaceState的所有内容都表明它根本不应该是父框架。我错过了什么吗?

0 个答案:

没有答案