有的時候整個網站都需要通過框架來訪問,但某些應該在框架裏顯示才合理的頁面經常會單獨顯示(如從新窗口中打開、從外部網站鏈接進來等情況)。
今天想到了一個辦法處理,在此分享。
假設網站中有一個首頁(框架頁,首頁框架包含一個頭部頁(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>