如何判断您的网页是否在.Net的iFrame中运行?

时间:2010-04-28 14:49:13

标签: c# .net html iframe

我有一个ASPX页面,有时会加载到我的应用程序中的iFrame中,有时不会。从后面的代码中,您如何检测您的页面是否从iFrame加载。

3 个答案:

答案 0 :(得分:2)

你无法在服务器端检测到这一点,在客户端,这个java脚本代码应该可以工作。

<script type="text/javascript">
    if (top == self)
        alert('Not in an iframe');
    else
        alert('In an iframe');
</script>

答案 1 :(得分:2)

我真诚地怀疑你能从背后的代码中做到这一点。您可以在JavaScript中执行此操作,但不能从后面的代码中执行此操作。

如果你真的需要知道后面的代码,你可能会在iframe中加载页面时提供一个Query String参数?有点像...

<iframe src ="page.aspx?iframe=true" width="100%" height="300">
</iframe>

然后在代码后面你可以做类似的事情......

// sometimes my Asp.NET, Java and PHP get a little confused
// so maybe this might throw some no such index type errors,
// but I think it communicates the idea
string iframe = Request.QueryString["iframe"];
if(!string.IsNullOrEmpty(iframe) && iframe.Equals("true"))    {
    // this page is in the iframe
}

答案 2 :(得分:0)

您应该使用JavaScript来执行此操作。