我有一个超文本标记语言页面(比方说welcome.html),其中包含一个我无法控制(比方说app.html)的页面的iframe。用户使用iframe中的应用程序执行一些操作,然后单击submit。一旦他们这样做了,他们就会被带到一个新的页面(比如thanks.jsp),这个页面会加载到iframe中。有没有一种方法可以强制thanks.jsp加载整个框架,而不是单击提交后的iframe?请记住,我无法控制Submit按钮或app.html背后的逻辑。然而,我确实可以控制welcome.html和thanks.jsp。如果可能的话,我想坚持使用超文本标记语言和/或JavaScript。提前谢谢你。
发布于 2008-10-11 17:39:38
您可能希望使用framebuster,并设置一个基本目标,以防它失败。
首先:
如果通过post请求重定向请求 thanks.jsp,则为,因此您可以将页面呈现为对get请求的响应。
然后:
包括framebuster JavaScript:
<script type="text/javascript">
if (self != top) { top.location.replace(location); }
</script>最后:
如果用户没有启用JavaScript,请确保他们不会再停留在框架中,而不是必须这样做:
<base target="_top">发布于 2008-10-11 17:41:17
在thanks.jsp上,您可以输入以下JS:
// Parent window not the same as this one
if (self !=top)
{
top.location.href = self.location.href;
} 由于same origin policy的原因,如果您在与包含框架的原始页面相同的服务器上拥有thanks.jsp,那么这将会起作用。
上面的代码检查你所在页面的url,然后检查它正在执行的页面的url (thanks.jsp) -如果它们不匹配,你将被发送到thanks.jsp url。当thanks.jsp是一个静态页面时,这个方法工作得很好,但不会携带postdata等。
https://stackoverflow.com/questions/194346
复制相似问题