1

我有一个 HTML 页面(比如welcome.html),其中包含一个我无法控制的页面的 iframe(比如 app.html)。用户在 iframe 中使用应用程序执行一些操作并单击提交。一旦他们这样做了,他们就会被带到一个新页面(比如thanks.jsp),该页面在iframe中加载。有没有一种方法可以强制thanks.jsp在单击提交后加载全帧而不是iframe?请记住,我无法控制提交按钮或 app.html 背后的逻辑。不过,我确实可以控制welcome.html 和thanks.jsp。如果可能的话,我想坚持使用 HTML 和/或 JavaScript。先感谢您。

4

2 回答 2

5

您可能想要使用带有基本目标的 framebuster,以防万一失败。

第一的:

如果 thanks.jsp通过发布请求请求 - 重定向,以便您将页面呈现为对获取请求的响应。

然后:

包括 framebuster JavaScript:

<script type="text/javascript">
   if (self != top) { top.location.replace(location); }
</script>

最后:

如果用户没有启用 JavaScript,请确保他们不再停留在框架中,然后他们必须:

<base target="_top">
于 2008-10-11T17:39:37.673 回答
2

thanks.jsp你可以输入以下JS :

// Parent window not the same as this one
if (self !=top) 
{
    top.location.href = self.location.href;
} 

thanks.jsp由于相同的来源策略,如果您与包含框架的原始页面在同一台服务器上,这将起作用。

上面的代码检查您所在页面的 url,然后检查它正在执行的页面之一 ( thanks.jsp) - 如果它们不匹配,您将被发送到该thanks.jspurl。当是静态页面时,此方法可以正常工作thanks.jsp,但不会携带 postdata 等。

于 2008-10-11T17:41:17.077 回答