我有一个HTML页面(比如welcome.html),其中包含我无法控制的页面的iframe(例如app.html)。用户使用iframe中的应用执行某些操作,然后点击提交。一旦他们这样做,他们将被带到一个新的页面(例如thanks.jsp),它在iframe中加载。有没有一种方法可以强制thanks.jsp加载完整的框架而不是iframe一旦点击提交?请记住,我无法控制提交按钮或app.html背后的逻辑。但我确实控制了welcome.html和thanks.jsp。如果可能的话,我想坚持使用HTML和/或JavaScript。提前谢谢。
答案 0 :(得分:5)
你可能想要使用一个基础目标的一个重型炸弹,以防它失败。
首先:
如果 thanks.jsp
通过帖子请求请求 - 重定向,那么您将该页面显示为对获取请求的响应。
然后:
包含framebuster JavaScript:
<script type="text/javascript">
if (self != top) { top.location.replace(location); }
</script>
最后:
如果用户未启用JavaScript,请确保他们不再停留在框架中,然后他们必须:
<base target="_top">
答案 1 :(得分:2)
在thanks.jsp
上你可以输入以下JS:
// Parent window not the same as this one
if (self !=top)
{
top.location.href = self.location.href;
}
如果您thanks.jsp
与包含该框架的原始网页位于同一服务器上thanks.jsp
,那么这将有效。
上面的代码会检查您所在页面的网址,然后检查其正在执行的页面的网址(thanks.jsp
) - 如果它们不匹配,则会将其发送到{{1} } url。当thanks.jsp
是静态页面时,此方法可以正常工作,但不会携带postdata等。