我有一组asp.net页面,我希望它们只能在从IFrame加载时才能访问或加载。如果尝试直接通过浏览器地址栏访问页面,则根本不应显示该页面或向用户显示该消息。
我尝试过使用Cookie和sesions,但是创建cookie /会话后它们并不是那么有效,你可以直接从浏览器访问这些页面,绕过IFrame。
我的开发平台是asp.net 2.0 +,vs2008,C#2.0 +
答案 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>