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