如何强制页面仅在IFrame中加载?

时间:2009-07-08 09:50:17

标签: http iframe webpage

我有一组asp.net页面,我希望它们只能在从IFrame加载时才能访问或加载。如果尝试直接通过浏览器地址栏访问页面,则根本不应显示该页面或向用户显示该消息。

我尝试过使用Cookie和sesions,但是创建cookie /会话后它们并不是那么有效,你可以直接从浏览器访问这些页面,绕过IFrame。

我的开发平台是asp.net 2.0 +,vs2008,C#2.0 +

3 个答案:

答案 0 :(得分:5)

这是将脚本放在head标签中的几次之一。

<html>
<head>
    <title>sandBox</title>
    <script type="text/javascript">
        if (frameElement == null) {
            //change location or close
            window.location = "http://stackoverflow.com";
            // or window.close();
        }
    </script>
</head>
<body>
content goes here
</body>
</html>

答案 1 :(得分:1)

在页面中使用这个JS来检查它是否在iframe中。

if(window == window.top) {
    //page is not in an iframe
}

答案 2 :(得分:0)

head 标记内尝试:

<script>
if(window.self !== window.top); //inside an iframe
else window.location = "http://stackoverflow.com/" // Outside
</script>