在iFrame中显示父回历史记录

时间:2015-12-11 19:51:15

标签: javascript jquery html iframe browser-history

我想在我的网页上的iframe中显示以前访问过的用户页面。例如:如果用户在cnn.com上,然后他们输入mysite.com,点击我页面上的按钮,我就会在我的页面上显示cnn.com上的iframe。

我在线阅读了几个解决方案,但没有解决我的问题。我目前的实施如下:

的index.html:

<body>
        <div>
            <h1>Welcome to mysite!</h1>
            <h3>Click the button to see a site you have previously visited</h3>
            <button id="button">magic</button>
        </div>
        <br>    
        <p>This is a site you visited previously</p>
        <iframe id="myIFrame" height="500px" width="100%" class="netframe" src="example.com"></iframe>

</body>

script.js:

$(document).ready(function(){

        $("#button").click(function(e){  
            document.getElementById("button").style.color = "red"; 
            $("#myIFrame").attr('src', parent.history.back());

        });
});

我遇到的问题是,当我点击按钮时,整个页面会返回,并且不会显示在iframe中。因此,在我单击按钮的示例中,我的整个页面从mysite.com转到cnn.com。我喜欢保持相同的父页面,以及在其中加载cnn.com的iframe。

我已经阅读了一些关于历史如何不同的怪癖,这取决于你如何加载iframe,但这些都没有帮助我。

如果有办法做我想做的事情?

1 个答案:

答案 0 :(得分:2)

不,这不是你可以做的事情。用户浏览器历史记录的内容通常被视为秘密;你不能让浏览器向你展示它们。

如果用户通过单击上一页上的链接导航到您的页面,您可以通过选中document.referrer来确定该页面的内容。但是,如果用户手动输入了网页的网址,就不会出现这种情况,正如您在问题中所描述的那样。

在任何情况下,像history.back()这样的方法都不会返回值;它们使框架导航到其历史记录中的上一页。无法确定此页面是什么,这样做通常会导致脚本停止运行(因为您的页面不再处于活动状态)。