强制iframe加载全帧

时间:2008-10-11 17:26:52

标签: javascript html iframe frame

我有一个HTML页面(比如welcome.html),其中包含我无法控制的页面的iframe(例如app.html)。用户使用iframe中的应用执行某些操作,然后点击提交。一旦他们这样做,他们将被带到一个新的页面(例如thanks.jsp),它在iframe中加载。有没有一种方法可以强制thanks.jsp加载完整的框架而不是iframe一旦点击提交?请记住,我无法控制提交按钮或app.html背后的逻辑。但我确实控制了welcome.html和thanks.jsp。如果可能的话,我想坚持使用HTML和/或JavaScript。提前谢谢。

2 个答案:

答案 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等。