javascript实现让网页逃不出框架

  有的时候整个网站都需要通过框架来访问,但某些应该在框架里显示才合理的页面经常会单独显示(如从新窗口中打开、从外部网站链接进来等情况)。
  今天想到了一个办法处理,在此分享。

  假设网站中有一个首页(框架页,首页框架包含一个头部页(header.aspx)、左边栏(left.aspx)、主体(main.aspx))、N多其它要在主体里显示的页面。那么有如下代码:

  1.在“N多其它要在主体里显示的页面”加上这个代码:

<script type="text/javascript">
if (!top){
var currentUrl=window.location.pathname;
top.location
= "default.aspx?url="+currentUrl; //带参数的跳转
}
</script>

  2.在header.aspx(或left.aspx)里加如下代码:
    <script type="text/javascript">
<!--
Request
= {
QueryString :
function(item){
var svalue = top.location.search.match(new RegExp('[\?\&]' + item + '=([^\&]*)(\&?)','i'));
return svalue ? svalue[1] : svalue;
}
}

var mainurl=Request.QueryString('url'); //读取url的值
if(mainurl && mainurl!='' && mainurl!='/')
{
top.document.getElementById(
'main').src=mainurl; //main为主体框架的id
}
-->
</script>

  3.在default.aspx里加如下代码
    <script type="text/javascript">
if (top){
top.location
= "default.aspx"; //防止被放入框架中
}
</script>

posted @ 2008-10-08 23:27  canbeing  阅读(510)  评论(0编辑  收藏  举报