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