【发布时间】:2009-10-02 07:38:08
【问题描述】:
有没有办法检测我的页面是否在我的 C# ASP.NET 代码隐藏的框架内?
我知道有一些方法可以使用 javascript 打破帧或检测帧,但我对这种情况不感兴趣。我想知道是否有办法在页面第一次访问浏览器之前检测框架服务器端,即请求中是否有某种指示。
【问题讨论】:
-
检测“脚本”应该放在哪里?我不确定我是否完全理解了这个问题,但我认为从框架中的页面来看,这可能会很成问题。
有没有办法检测我的页面是否在我的 C# ASP.NET 代码隐藏的框架内?
我知道有一些方法可以使用 javascript 打破帧或检测帧,但我对这种情况不感兴趣。我想知道是否有办法在页面第一次访问浏览器之前检测框架服务器端,即请求中是否有某种指示。
【问题讨论】:
不,在请求的标头中没有发送任何内容表明该页面位于框架中 - 这就是您真正需要继续的所有内容。
您可以做的最好的事情是查看 Referrer 属性,如果它来自已知的框架站点(即 images.google.com 等),则将其视为可疑。
【讨论】:
这个答案有点晚了,但我走了......
如果您想在服务器端了解,最好的办法是使用 JavaScript 重定向您的页面(如果它位于框架内)。例如,使用这个 JavaScript 来重定向:
<script type="text/javascript">
if(top.location.href!= window.location.href){
window.parent.location.href = "http://127.0.0.1/frame.aspx?frame=yes";
}
</script>
然后在 frame.aspx 中你会知道前一页在一个框架中。如果需要,您可以向查询字符串添加更多信息。
【讨论】: