在網頁布局和排版的時候,Frame(框架)是我們常用的一種技術。但是,它常常不能盡如人意,下面我們就用腳本來控制Frame,使之更加完美。
一、保護Frame的腳本
我們在瀏覽網頁的時候,常?吹揭恍┚W頁的外觀與正常的頁面一樣,其實它是含有幀的。這些幀作得非常隱蔽,它們沒有Border。即使“保存”了該頁面,離線后瀏覽也不會發現什么。其實你僅僅保存了一個“框架”。這個時候你只要隨便點幾個鏈接,看看“地址欄”內的地址是否改變就可以知道是否包含了幀。如果沒有改變,你肯定是在別人的Frame頁面中瀏覽,并非在一個單獨的頁面中。
下面給出一種方法用來保護你的Frame。
<body OnLoad=″if(parent.frames.length=0)top.location=′gotframe.htm′;″>
只要用上面的語句代替Html中原有的即可,同時將gotframe.htm指向你的FrameSet文件(框架文件)。這個腳本有如下的用途:如果你的頁面有Frame(以一個LeftPage和一個Right Page為例)。將上述腳本分別加入Left Page和Rigft Page中,即使有人使用IEPowerToy之類的瀏覽器增強工具,也別想在一個單獨的窗口打開Left Page和RigftPage。只能通過整個Frame瀏覽你的頁面。
二、避免Frame被破壞
首先將如下的代碼加入Html的<head>區:
<Script Language=″JavaScript″> <!-- setTimeout (″changePage()″, 0); function changePage() { if (self.parent.frames.length != 0) self.parent.location= ″index.htm″; } // --> </script>
在網上,你可能會遇到這樣的情況:別人是通過帶有Frame幀的頁面在瀏覽,而剛好你的頁面是在他們的某個Frame頁面中打開的,那么該頁面并非全屏幕在被別人瀏覽,這不是你所希望看到的。上面的腳本可以避免一個頁面在其它的Frame中打開。只需將index.htm換成該頁面的文件名。
除此之外,還有一種腳本也送給大家。將如下的腳本加入Html的<head>區即可:
<script language=″JavaScript″> <!-- if (self.parent.frames.length != 0) self.parent.location=document.location.href; // --> </script>
瀏覽加入該代碼的頁面時,可以確保永遠是在一個完整的窗口中打開。
三、消除Frame的腳本
你有沒有見過一個包含幀的頁面只需要點擊一個頁面上的按鈕就可以將幀消除掉?來看看下面的代碼:
<form> <input type=″button″ value=″點擊這里消除Frame″ onClick=″parent.location.href=′noframe.htm′″> </form> noframe.htm 為該頁面頁的文件名。點擊一下這個按鈕,怎么樣?是不是很奇特。
|