我想在我的网页上的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,但这些都没有帮助我。
如果有办法做我想做的事情?
答案 0 :(得分:2)
不,这不是你可以做的事情。用户浏览器历史记录的内容通常被视为秘密;你不能让浏览器向你展示它们。
如果用户通过单击上一页上的链接导航到您的页面,您可以通过选中document.referrer
来确定该页面的内容。但是,如果用户手动输入了网页的网址,就不会出现这种情况,正如您在问题中所描述的那样。
在任何情况下,像history.back()
这样的方法都不会返回值;它们使框架导航到其历史记录中的上一页。无法确定此页面是什么,这样做通常会导致脚本停止运行(因为您的页面不再处于活动状态)。