Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不中断浏览器的情况下中断帧';什么是后退按钮?_Javascript - Fatal编程技术网

Javascript 如何在不中断浏览器的情况下中断帧';什么是后退按钮?

Javascript 如何在不中断浏览器的情况下中断帧';什么是后退按钮?,javascript,Javascript,链接到我的站点将我的站点保存在一个框架中,因此我在我的页面中添加了以下JavaScript: if (window.top.location != window.location) { window.top.location = window.location } 现在,如果我通过有问题的站点访问我的站点,我的站点将成功脱离框架。但是后退按钮坏了!“后退”按钮将用户发送到“我的网站”的框架版本,该版本立即再次出现,将用户返回到他试图离开的位置!有没有简单的方法来解决这个问题 windo

链接到我的站点将我的站点保存在一个框架中,因此我在我的页面中添加了以下JavaScript:

if (window.top.location != window.location) {
    window.top.location = window.location
}
现在,如果我通过有问题的站点访问我的站点,我的站点将成功脱离框架。但是后退按钮坏了!“后退”按钮将用户发送到“我的网站”的框架版本,该版本立即再次出现,将用户返回到他试图离开的位置!有没有简单的方法来解决这个问题

window.top.location.replace(window.location);

替换方法专门用于此目的。它将历史状态中的当前项替换为新目标,这样“后退”按钮就不会经过您不想要的目标。

另一种解决方案是在新窗口中打开站点,在iframed站点中留下友好消息:

if (parent.frames.length) 
{ window.open("mySite.htm", "MySite");
  location.href= "framedMessage.htm";   
}

其中
framedMessage.htm
包含一些友好/警告消息。

jfriend00的答案确实正确。使用window.location.replace方法将在不影响“后退”按钮的情况下工作

然而,我想指出的是,无论何时,只要你想阻止一个页面被框起来,你就应该做更多的事情!有两种方法可以防止像这样的简单脚本脱离框架,这在许多现代浏览器中都可以使用。也许您可以禁用该页面,显示一条带有完整页面链接的消息,诸如此类。您还可以使用X-Frame-Options响应标题,告知浏览器不要在框架中显示页面。如果你不采取这些措施,你的网站可能会被点击劫持