在iFrame中显示父级回溯历史

display parent back history in iFrame

本文关键字:回溯 历史 显示 iFrame      更新时间:2023-09-26

我想在我的页面上的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。我希望父页面保持不变,iframe在其中加载cnn.com

我读过一些关于历史如何因加载iframe而不同的怪癖,但这些都对我没有帮助。

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

不,这不是你能做的。用户浏览器历史记录的内容通常被视为秘密;您不能使浏览器向您显示它们。

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

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